我在c中读了一些带有一些unicode符号(UTF8)的字符串。我读的那些存储在3个字节中,所以这些字符不能存储在一个字节中,因此我担心使用函数write和read通过TCP套接字发送这些字符时的字节序。我是否需要对它们执行任何特殊操作以确保从流中读取的计算机正确解释这些unicode字符?
答案 0 :(得分:2)
将其作为字节数组发送。对于UTF8编码的字符串,字节顺序不应该是问题,因为它们是面向字节的。例如,当您有两个字节并且需要将它们解释为单个值时,字节顺序很重要。如果必须单独解释这两个字节,则字节顺序不是问题。
更多信息:http://unicode.org/faq/utf_bom.html
问:UTF-8编码方案是否相同,无论是否 底层处理器是小端还是大端?
答:是的。由于UTF-8被解释为字节序列,因此没有 endian问题,因为有编码形式使用16位或 32位代码单元。 BOM与UTF-8一起使用时,仅用作 用于区分UTF-8与其他编码的编码签名 - 它 与字节顺序无关。 [AF]