UTF和UCS之间有什么区别.
UCS编码是固定宽度,并由每个字符使用的字节数标记.例如,UCS-2每个字符需要2个字节.代码点超出可用范围的字符无法以UCS编码进行编码.
UTF编码是可变宽度,并由存储字符的最小位数标记.例如,UTF-16每个字符至少需要16位(2个字节).具有大代码点的字符使用更大数量的字节进行编码 - 对于UTF-16中的星体字符,使用4个字节.
- 代码中的内部表示
- 最佳存储表示(即在文件中)
- 最好的有线传输格式(可能在不同架构上的应用程序之间的传输,并具有不同的标准区域设置)
对于现代系统,最合理的存储和传输编码是UTF-8.在某些特殊情况下,其他可能是合适的 - 旧邮件服务器为UTF-7,编写糟糕的文本编辑器为UTF-16--但最常见的是UTF-8.
首选内部表示取决于您的平台.在Windows中,它是UTF-16.在UNIX中,它是UCS-4.每个都有其优点:
最后,一些系统使用UTF-8作为内部格式.如果您需要与现有的基于ASCII或ISO-8859的系统进行互操作,这是很好的,因为UTF-8文本中间不存在NULL字节 - 它们是UTF-16或UCS-4.