6

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

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

4

6 回答 6

9

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

  1. 您必须在 HTTP 标头中指定它是 UTF-16。与 UTF-8 不同,UTF-16兼容 ASCII,这意味着一切都需要从一开始就使用 UTF-16。
  2. 旧客户端不支持 UTF-16。例如,Windows 9x 上的任何内容。可能还有 Mac OS9。
  3. 哦,等等,我差点忘了:Windows XP 的北美和欧洲版本默认没有安装亚洲字体。
于 2009-05-14T19:29:08.840 回答
8
  • 假设您的大部分 HTML 是 ASCII,您的带宽消耗可能会增加近一倍
  • 错误地假定 UTF-8(或 ASCII)的客户会感到困惑

为什么改成UTF-16?

于 2009-05-14T19:19:44.370 回答
3

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

维基百科对此有很好的解释。

于 2009-05-14T19:28:23.397 回答
3

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

但是,如果带宽是一个大问题,您可能应该考虑对 HTML 进行 gzip 压缩。这将比切换编码节省更多的带宽。

于 2009-06-26T22:26:53.040 回答
3

你在这里举行的非常好的文章。Fundamentals 指出,“当需要唯一的字符编码时,字符编码必须是 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 可能更合适。选择其中之一的可能原因包括内部处理的效率和与其他进程的互操作性。”

于 2010-12-06T10:40:51.840 回答
-6

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

于 2009-05-14T19:27:28.250 回答