0

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

  1. 我在 Emacs 中创建了我的 html 文件,以 UTF-8 编码。
  2. 我将它上传到服务器,然后在我的浏览器(FF、IE、Chrome、Opera)上查看——没问题。
  3. 我尝试通过 FF > View > Character Encoding > All those different Chinese encoding systems, eg Chinese Simplified (HZ) 查看其他编码的页面
  4. 除了 UTF-8,在其他所有编码中,文本都会变得乱码。

我假设这不是问题——即浏览器足够聪明,可以知道页面的编码方式,并准确地解析内容。我想知道的是,为什么我更改编码后就无法再阅读中文文本了——是因为我的操作系统上没有安装中文字体吗?如果我的观众是中国人,我应该坚持使用 UTF-8,还是应该从他们的众多编码系统中选择一种?

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

4

3 回答 3

2

UTF 不是“包罗万象”的编码。它旨在包含国际语言字符符号以便于使用,但它仍然是一种编码,就像您选择的其他编码一样。您必须在每种编码中重新键入文本,以使其在使用该编码查看时正确显示。

于 2012-04-23T10:05:13.260 回答
2

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

您应该在 HTML 中指定正确的编码。您在 Web 浏览器中使用的选项仅在 Web 开发人员搞砸了他的工作并声明其他编码而不是实际使用的编码或在一页上混合 2 种不同的编码时才存在。

于 2012-04-23T10:06:09.973 回答
0

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

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

于 2012-05-21T12:42:59.270 回答