2017-01-26 93 views
0

我正在尋找我下載的asn.tcl文件,它使用的編碼convertfrom ascii。 當我運行這個命令它在ascii編碼上失敗(它與utf-8一起工作)。 任何人都知道如何與ascii一起使用它?Tcl - 編碼convertfrom ascii

謝謝。

+0

ASCII是UTF-8的子集。當您將ASCII中的所有字符與UTF-8中的相同字符進行比較時,它們之間幾乎沒有差別。差異來自擴展的ASCII,但擴展的ASCII不稱爲ASCII,因爲有許多變體。有Windows-1252,有Latin-1等。它們都是UTF-8,它們都是ASCII – slebetman

回答

2

ASN.1通常最好作爲二進制數據處理,並且包含在其中的字符串的編碼應該是這些字符串的鍵應該定義的。在不知道使用什麼編碼的情況下,編碼iso8859-1是第一選擇,因爲這是特殊的編碼,不會對二進制數據造成可怕的損壞。 (這是因爲它準確地將0-255範圍內的字節映射到U + 000000-U + 0000FF範圍內的字符,這是平凡的和無損的。)猜測否則編碼很難,有時是不可能的。

我不想手動解析ASN.1。使用tcllib package for it。與普通的標籤,它可以做的大部分工作對您:

package require asn 

set f [open "mydata.ber" "rb"] 
set myData [read $f] 
close $f 
# ... 
# Data being parsed is now in $myData variable 
# I assume that we've reached a string in the parsing of it 
# ... 
asn::asnGetString myData myString 
puts "String parsed was '$myString'" 

不過,我想,用它仍然有人需要在邏輯層來了解ASN.1。

+0

的超集,謝謝,我使用了iso8859-1,它完成了這項工作 – itayb