ASN1 UTF-8字符串解码

时间:2015-03-08 17:50:55

标签: c utf-8 asn.1 decoder utf8-decode

我正在使用C语言制作ASN.1解析器(使用爱立信ASN1规范文档)。我想解码UTF-8字符串类型,但我无法在线找到有关此信息,我正在使用的文档没有详细描述UTF-8字符串。任何人都可以向我提供一些代码,或解释如何解码它。

我是ASN.1的新手。

2 个答案:

答案 0 :(得分:9)

如果您正在尝试解析ASN.1,那么优秀的介绍性资源是Kaliski's ‘Layman’s Guide’(可在网络上的各个位置以HTML和PDF格式提供)。但是该文档没有提及UTF8String类型。

您需要知道的额外信息是UTF8Stringtag 12(十进制或十六进制为0c),并且它被编码为表示字符串的字节序列UTF-8编码。

因此字符串'Helló'将被编码为

0c 06 48 65 6c 6c c3 b3

(顺便说一句,我假设“爱立信ASN1规范文档”讨论的是标准ASN.1,而不是某些变体。)

答案 1 :(得分:-2)

维基百科页面中的表格总结了完整的UTF-8描述,允许您编写编码器和解码器:

http://en.wikipedia.org/wiki/UTF-8#Description