【问题标题】:Tcl - encoding convertfrom asciiTcl - 从 ascii 编码转换
【发布时间】:2017-01-26 16:49:24
【问题描述】:

我正在查看我下载的 asn.tcl 文件,它使用了 ascii 的编码转换。 当我运行此命令时,它在 ascii 编码上失败(它适用于 utf-8)。 有人知道如何将它与 ascii 一起使用吗?

谢谢。

【问题讨论】:

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

标签: encoding tcl asn.1


【解决方案1】:

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。

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2011-06-26
    • 2012-03-27
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2017-05-06
    • 2016-07-07
    • 2021-07-11
    相关资源
    最近更新 更多