Localization UTF-8的用途和替代品

Localization UTF-8的用途和替代品,localization,utf-8,internationalization,Localization,Utf 8,Internationalization,在什么情况下,您建议使用UTF-8?有没有其他方法可以达到同样的目的 UTF-8用于i18n?将UTF-8用于拉丁语。utf-16适用于所有其他语言。始终使用utf-8 由于您将此标记为web design,因此我认为您需要优化代码大小,使其尽可能小,以便快速传输文件 UTF-8的替代方案将是其他Unicode编码,因为至少在常规计算机系统中,除了使用Unicode之外没有其他选择 如果您查看UTF-8是如何指定的,您将看到所有U+007F以下的代码点都需要一个八位字节,U+07FF以下的代码点

在什么情况下,您建议使用UTF-8?有没有其他方法可以达到同样的目的


UTF-8用于i18n?

将UTF-8用于拉丁语。utf-16适用于所有其他语言。

始终使用utf-8

由于您将此标记为web design,因此我认为您需要优化代码大小,使其尽可能小,以便快速传输文件

UTF-8的替代方案将是其他Unicode编码,因为至少在常规计算机系统中,除了使用Unicode之外没有其他选择

如果您查看UTF-8是如何指定的,您将看到所有U+007F以下的代码点都需要一个八位字节,U+07FF以下的代码点需要两个八位字节,U+FFFF以下的代码点需要三个八位字节,U+10FFFF以下的代码点需要四个八位字节。 对于UTF-16,最多需要两个八位字节(U+FFFF),最多需要四个八位字节(U+10FFFF)。 对于UTF-32,所有unicode点都需要四个八位字节

换句话说,与UTF-16相比,U+07FF下的脚本在使用UTF-8时会有一些大小优势,而上面的脚本会有一些大小损失。 然而,由于领域是web设计,因此可能值得注意的是,所有控制字符都位于UTF-8的一个八位字节范围内,这使得与实际文本量相比,对于包含大量HTML标记和Javascript的文本来说,情况就不那么真实了


U+07FF下的脚本包括拉丁语,除了一些扩展名,如音调标记、希腊语、西里尔语、希伯来语,可能还有更多。Wikipedia在Unicode问题上有很好的报道,在互联网上,你可以得到更多的细节。

既然你要求推荐,我建议你在任何情况下都使用它。所有时间,即HTML文件和文本资源。对于纯英语的应用程序,它不会改变任何东西,但当您需要对其进行实际本地化时,首先使用UTF-8将是一种好处,您无需重新访问代码并对其进行更改;缺陷的一个来源较少


至于其他Unicode系列编码,如UTF-16,我不建议在web应用程序中使用它们。虽然带宽消耗实际上可能会更高,例如,汉字始终至少有三个字节,但您可以避免传输和浏览器解释方面的问题是的,我知道理论上它的工作原理应该是一样的,不幸的是,在实践中它往往会中断。

但UTF-16与ASCII不向后兼容。UTF-8完美地支持所有其他语言。您可能会混淆ISO-8859。唯一的区别是UTF-16的宽度是4字节,而UTF-8的宽度是可变的,因此消耗的字节更少。@user177883,那么您应该说这是问题中的一个限制。errr。。。utf-16是每个字符2个字节。您对utf-32UTF-16的理解是每个代码单元2个字节。一个字符可能需要1或2个UTF-16编码单元。unicode我完全同意,但不一定是utf8。我想知道为什么问题得到-2?可能是因为第二个问题?UTF-8用于i18n?。我不太清楚你的意思。