Encoding Tcl-从ascii编码转换

Encoding Tcl-从ascii编码转换,encoding,tcl,asn.1,Encoding,Tcl,Asn.1,我在看我下载的asn.tcl文件,它使用ascii编码。 当我运行这个命令时,ascii编码失败(它与utf-8一起工作)。 有人知道如何使用ascii码吗 谢谢。ASN.1通常最好作为二进制数据处理,其中包含的字符串编码应该由这些字符串的键定义。在不知道使用何种编码的回退情况下,编码iso8859-1是首选,因为这是一种特殊的编码,不会对二进制数据造成可怕的破坏。(这是因为它精确地将0–255范围内的字节映射到U+000000–U+0000FF范围内的字符,这既简单又无损耗。)否则,猜测编码是

我在看我下载的asn.tcl文件,它使用ascii编码。 当我运行这个命令时,ascii编码失败(它与utf-8一起工作)。 有人知道如何使用ascii码吗


谢谢。

ASN.1通常最好作为二进制数据处理,其中包含的字符串编码应该由这些字符串的键定义。在不知道使用何种编码的回退情况下,编码
iso8859-1
是首选,因为这是一种特殊的编码,不会对二进制数据造成可怕的破坏。(这是因为它精确地将0–255范围内的字节映射到U+000000–U+0000FF范围内的字符,这既简单又无损耗。)否则,猜测编码是困难的,有时是不可能的

我不想手工解析ASN.1。使用。使用普通标签,它可以为您完成大部分工作:

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。

ASN.1通常最好从一开始就作为二进制数据处理,其中包含的字符串的编码应该由这些字符串的键定义。在不知道使用何种编码的回退情况下,编码
iso8859-1
是首选,因为这是一种特殊的编码,不会对二进制数据造成可怕的破坏。(这是因为它精确地将0–255范围内的字节映射到U+000000–U+0000FF范围内的字符,这既简单又无损耗。)否则,猜测编码是困难的,有时是不可能的

我不想手工解析ASN.1。使用。使用普通标签,它可以为您完成大部分工作:

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。

ASCII是UTF-8的一个子集。当您将ASCII中的所有字符与UTF-8中的相同字符进行比较时,实际上是零差异。区别来自扩展ASCII,但扩展ASCII不被称为ASCII,因为有许多变体。有Windows-1252,有Latin-1等等。它们都像UTF-8一样,ASCIIASCII的超集是UTF-8的子集。当您将ASCII中的所有字符与UTF-8中的相同字符进行比较时,实际上是零差异。区别来自扩展ASCII,但扩展ASCII不被称为ASCII,因为有许多变体。有Windows-1252,有Latin-1等等。它们都像UTF-8一样,是ASCII的超集