由于字符可以由2字节或更多字节(2字节的序列)表示,所以Unicode代码单元可以具有可变大小。因此,如果以二进制格式存储,程序如何知道如何读取它们?程序如何读取unicode?
让我们假设一个'由0F0F 13F3
代表和“b”是由02AD BC39 09F3 459F
如果我把它们写在文件foo.txt的表示:
0F0F 13F3 02AD BC39 09F3 459F
那么我将如何知道在哪里停止'a'和'b'?
这里的人我正在谈论阅读,写纯粹的Unicode,即没有将其转换为任何其他格式基于流行的字符集,如utf-8。
在讨论Unicode时,术语很重要:您将代码单元,代码点和字符模糊在一起(它们是三个不同的术语)。一旦决定编码(UTF-8,UTF-16,UTF-32)码单元是固定长度的。 (1,2和4个字节)然而,代码点可能需要UTF-8和UTF-16中的多个代码单元。除了下面的好答案,请参阅unicode.org/glossary – Thanatos
@Thanatos谢谢你帮助我。 –