关于中文编码的问题

时间:2012-04-23 09:59:23

标签: browser encoding utf-8 cjk

我正在尝试用中文创建一个网页,我意识到虽然当我在浏览器上运行它时文本看起来很好,但是一旦我更改了字符编码,文本就会变得乱七八糟。这是正在发生的事情:

  1. 我在Emacs中创建我的html文件,以UTF-8编码。
  2. 我将它上传到服务器,并在我的浏览器(FF,IE,Chrome,Opera)上查看 - 没问题。
  3. 我尝试通过FF>查看其他编码页面查看>字符编码>所有那些不同的中文编码系统,例如简体中文(HZ)
  4. 除了UTF-8之外,在其他所有编码中,文本都会变得乱七八糟。
  5. 我认为这不是问题 - 即浏览器足够智能以了解页面所处的编码,并准确地解析内容。我想知道为什么一旦我改变编码就不能再读中文了 - 是不是因为我的操作系统上没有安装中文字体?如果我的观众是中国人,或者我应该在众多编码系统中选择一种,我应该坚持使用UTF-8吗?

    提前感谢您的帮助/意见。

3 个答案:

答案 0 :(得分:2)

UTF不是'全能'编码。它被设计为包含国际语言字符符号以便于使用,但它仍然是一种编码,就像您选择的其他编码一样。您必须重新键入每个编码中的文本,以便在使用该编码查看时正确显示。

答案 1 :(得分:2)

查看器编码必须与正在读取的文件匹配。将UTF-8视为其他内容与将.txt重命名为.exe并尝试运行它的意义相同。

您应该在HTML中指定正确的编码。您在Web浏览器中使用的选项仅适用于Web开发人员搞砸了他的工作并且声明了其他编码而非实际使用的罕见情况,或者在一个页面上混合了两种不同的编码。

答案 2 :(得分:0)

当然,在浏览器中更改编码会“破坏”文本!浏览器正在获取UTF-8代码点流,并尝试对原始数据强制执行另一种编码。不用说,结果并不漂亮。在浏览器中更改编码并不等同于转换。

正如你猜测的那样,现代浏览器通常会正确猜测 - 但并非总是如此。由于Agent_L确保在标头中声明编码。