是否有任何理由不使用UTF-8,16等等?

Joe*_*ips 8 utf character-encoding

我知道网络最近主要是针对UTF-8的标准化,我只是想知道是否有任何地方使用UTF-8会是一件坏事.我听说过UTF-8,16等可以使用更多空间的论点,但最终它可以忽略不计.

另外,在Windows程序,Linux shell和那种性质的东西中,你能安全地在那里使用UTF-8吗?

foo*_*foo 1

如果 UTF-32 可用,则优先使用它而不是其他版本进行处理。

如果您的平台本身支持 UTF-32/UCS-4 Unicode - 那么“压缩”版本 UTF-8 和 UTF-16 可能会更慢,因为它们对每个字符(字符序列)使用不同数量的字节,这使得不可能通过索引在字符串中直接查找,而 UTF-32 对每个字符使用 32 位“平面”,从而大大加快了一些字符串操作的速度。

当然,如果您在非常受限的环境(例如嵌入式系统)中进行编程,并且可以确定周围只有 ASCII 或 ISO 8859-x 字符,那么您可以选择这些字符集以提高效率和速度。但总的来说,坚持使用Unicode 转换格式

  • 对于相同的数据,UTF-32 占用的空间是 ASCII(或编码 ASCII 字符时的 UTF-8)的 4 倍。这绝对很重要。另外,与 ISO-8859-* 等“传统”字符集(也与 UTF-8 不同)不同,UTF-32 和 UTF-16 存在字节顺序问题。 (4认同)