什么是不透明的字节串?

时间:2011-04-30 02:01:19

标签: c++ c string

我已经玩了一段时间了,但我发现没有什么太有用了。什么是不透明的字节字符串以及它的c / c ++示例是什么?

更新 更多背景信息,来自rfc5001

2.3。 NSID选项    NSID选项的OPTION-CODE是3。    NSID选项的OPTION-DATA是不透明字节串,即    故意留在协议之外的语义。看到    第3.1节讨论。

2 个答案:

答案 0 :(得分:11)

它们可能意味着未指定格式的字节数组。 “不透明”意味着内部结构存在,但未知。因此,程序应该将字符串视为一个整体 - 存储它,传输它,但不要试图解释。

C ++示例将是std::vector<unsigned char>的实例。一个C示例是一个unsigned char数组(动态AKA malloc'或静态)。

答案 1 :(得分:3)

来自https://tools.ietf.org/html/rfc2608

  

不透明值是字节序列。它们与字符串不同,因为它们以序列“\ FF”开头。这是未转义的,是非法的UTF-8编码,表明接下来是以转义符号表示的字节序列,它构成二进制值。例如,'0'字节被编码为“\ FF \ 00”。