在什么情况下你会建议使用UTF-8?有没有替代它可以达到同样的目的?
UTF-8正用于i18n?
答案 0 :(得分:2)
由于您使用网页设计对其进行了标记,因此我假设您需要优化代码大小以尽可能小地快速传输文件。
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获得一些大小的好处,而上面的脚本会有一些大小的损失。 但是,由于域是网页设计,可能值得注意的是,所有控制字符都位于UTF-8的一个八位字节范围内,这使得对于具有大量HTML标记和Javascript的文本而言,这不太正确。实际“文本”的数量。
U + 07FF下的脚本包括拉丁语(除了一些扩展名,如音调标记),希腊语,西里尔语,希伯来语以及其他一些内容。维基百科对Unicode问题有很好的报道,在Unicode Consortium上你可以获得更多细节。
答案 1 :(得分:1)
由于您要求提供建议,我建议您在任何情况下都使用它。一直以来,即HTML文件和文本资源。对于仅限英语的应用程序,它不会改变任何东西,但是当你需要实际本地化它时,首先使用UTF-8将是一个好处(你不需要重新访问你的代码并改变它;一个缺陷来源少。)
至于其他Unicode系列编码(特别是UTF-16),我不建议将它们用于Web应用程序。虽然中文字符的带宽消耗实际上可能更高(一直至少有三个字节),但你可以避免传输和浏览器解释的问题(是的,我知道理论上它应该都是一样的,不幸的是在实践中它往往会破裂。
答案 2 :(得分:0)
一直使用UTF-8。 No excuses
答案 3 :(得分:-5)
将utf-8用于拉丁语言。所有其他语言的utf-16。