UTF-8字符串分隔符

时间:2011-05-01 11:06:47

标签: utf-8

我正在解析一个二进制协议,其中包含散布在原始字节中的UTF-8字符串。此特定协议在每个UTF-8字符串前面加上一个短(两个字节),表示后续UTF-8字符串的长度。这给出了最大字符串长度2 ^ 16> 65 000对于特定的应用来说已经足够了。

我的问题是,这是划分UTF-8字符串的标准方法吗?

3 个答案:

答案 0 :(得分:2)

我不会称之为分界,更像是“长度前缀”。有些人称他们为Pascal strings,因为在早期,语言Pascal是一种流行的语言,它存储在内存中的字符串。

我认为没有专门针对此的正式标准,因为这是存储UTF-8字符串(或任何字节串)的一种相当明显的方式。尽管如此,它仍然反复定义为处理包含字符串的消息的许多标准的一部分。

答案 1 :(得分:0)

UTF8通常不受限制,您应该能够使用此处提到的规则在其中发现多字节字符:http://en.wikipedia.org/wiki/UTF-8#Description

答案 2 :(得分:0)

我会使用以0x11开头的分隔符...... 但是如果发送原始字节,则必须从处理的data \ messages中排除此分隔符,这意味着如果有一个类似于该分隔符的用户输入,则必须将其转换。

如果用户输入任何utf8表示的字符,您可以按原样发送它。