字符集、字符编码与字节序为什么会导致乱码和截断问题
简答题简单499 次浏览
参考答案与解析
# 核心结论
字符集、字符编码和字节序描述的是不同层次:字符集定义有哪些抽象字符以及它们对应的码点,字符编码规定码点如何转换为代码单元和字节,字节序规定多字节代码单元在存储或传输时的排列顺序。乱码通常源于写入端与读取端采用了不同编码,截断则常因程序把字节边界、代码单元边界或码点边界误当成可见字符边界。工程上必须统一文本编码,并明确长度限制究竟针对存储字节、码点、代码单元还是用户看到的字素簇。
# 底层机制
Unicode为字符分配码点,但码点本身不是磁盘中的字节。UTF-8用一至四个字节编码一个码点,并兼容基础ASCII;UTF-16以十六位代码单元为基础,基本多文种平面之外的码点需要一对代理项;`UTF-
