将HTML编码从UTF-8切换到UTF-16会出现什么问题?

时间:2009-05-14 19:15:22

标签: html encoding utf-8 utf-16

对于HTML编码,从UTF-8更改为UTF-16会有什么影响?我想知道你对这个问题的看法。在做出这样的改变之前,有什么我需要考虑的事情吗?

注意:由于我需要处理大量的日文和中文文本而感兴趣。

6 个答案:

答案 0 :(得分:8)

我可以想到一些会出错的事情:

  1. 您必须在HTTP标头中指定它是UTF-16。与UTF-8不同,UTF-16 与ASCII兼容,这意味着一切都需要从一开始就是UTF-16。
  2. 较旧的客户不支持UTF-16。例如,Windows 9x上的任何内容。也可能是Mac OS9。
  3. 哦,等等,我差点忘了:默认情况下,北美和欧洲的Windows XP副本没有安装亚洲字体。

答案 1 :(得分:7)

  • 假设您的大多数HTML是ASCII
  • ,您的带宽消耗可能几乎翻倍
  • 错误地假设UTF-8(或ASCII)的客户端将会混淆

为什么希望更改为UTF-16?

答案 2 :(得分:2)

还有字节顺序成为8位数据以上的任何问题。 UTF编码文件以字节顺序标记开头,用于确定该文件的字节顺序或字节顺序。

Wikipedia has a quite good explanation of this.

答案 3 :(得分:2)

据我所知,所有现代浏览器都支持UTF-16编码。但正如其他人所指出的,您应该明确声明编码。并非所有浏览器和平台都支持所有unicode字符,但我认为这与您使用的编码无关。

但是,如果bandwith是一个大问题,你应该考虑gzipping HTML。这将比切换编码节省更多带宽。

答案 4 :(得分:2)

你在这里举办的非常好的文章。基础知识指出,“当需要唯一的字符编码时,字符编码必须是UTF-8,UTF-16或UTF-32.US-ASCII向上兼容UTF-8(US-ASCII字符串也是UTF -8字符串,参见[RFC 3629]),因此如果需要与US-ASCII兼容,则UTF-8是合适的。“实际上,与US-ASCII的兼容性非常有用,几乎是一项要求。 W3C明智地解释说,“在其他情况下,例如API,UTF-16或UTF-32可能更合适。选择其中一种的可能原因包括内部处理的效率和与其他流程的互操作性。”

答案 5 :(得分:-6)

我怀疑大多数浏览器甚至都不会显示您的网页。