C语言 通过 TCP 套接字发送 Unicode,字节序呢?



我在c中读取了一个带有一些Unicode符号(UTF8)的字符串。我读取的字符存储在 3 个字节中,因此这些字符不能存储在单个字节中,因此我担心使用写入和读取函数通过 TCP 套接字发送这些字符的字节序。我是否需要对它们执行任何特定操作,以确保从流中读取的计算机正确解释这些 unicode 字符?

将其作为字节数组发送。对于 UTF8 编码的字符串,字节序不应该是问题,因为它们是面向字节的。字节序很重要,例如,当您有两个字节并且需要将它们解释为单个值时。如果必须单独解释这两个字节,字节序不是问题。

更多信息: http://unicode.org/faq/utf_bom.html

问:无论 UTF-8 编码方案是否相同,无论 底层处理器是小端序还是大端序?

答:是的。由于 UTF-8 被解释为字节序列,因此没有 字节序问题,因为对于使用 16 位或 32 位代码单元。如果 BOM 与 UTF-8 一起使用,则仅用作 一种编码签名,用于区分 UTF-8 和其他编码 — 它 与字节顺序无关。 [AF]

最新更新