2017-01-26 60 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