Browser 关于中文编码的问题

Browser 关于中文编码的问题,browser,encoding,utf-8,cjk,Browser,Encoding,Utf 8,Cjk,我试图用中文创建一个网页,我意识到当我在浏览器上运行时,文本看起来很好,但一旦我改变了字符编码,文本就会变得乱七八糟。下面是正在发生的事情: 我用Emacs创建html文件,用UTF-8编码 我将它上传到服务器,并在我的浏览器(FF、IE、Chrome、Opera)上查看-没问题 我尝试通过FF>查看>字符编码>所有不同的中文编码系统,例如简体中文(HZ),以其他编码方式查看页面 除了UTF-8之外,每隔一次编码文本就会变得乱七八糟 我假设这不是问题——也就是说,浏览器足够聪明,能够知道页面使用

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

  • 我用Emacs创建html文件,用UTF-8编码
  • 我将它上传到服务器,并在我的浏览器(FF、IE、Chrome、Opera)上查看-没问题
  • 我尝试通过FF>查看>字符编码>所有不同的中文编码系统,例如简体中文(HZ),以其他编码方式查看页面
  • 除了UTF-8之外,每隔一次编码文本就会变得乱七八糟 我假设这不是问题——也就是说,浏览器足够聪明,能够知道页面使用的是哪种编码,并准确地解析内容。我想知道的是,为什么一旦我改变了编码,我就不能再阅读中文文本了——是因为我的操作系统上没有安装中文字体吗?如果我的听众是中国人,我应该坚持UTF-8吗?还是应该从他们众多的编码系统中选择一种


    提前感谢您的帮助/意见

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

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

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


    您应该在HTML中指定正确的编码。您在web浏览器中使用的选项仅适用于少数情况,即web开发人员在工作中出错,并声明实际使用的编码以外的其他编码,或在一个页面上混合了两种不同的编码。

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


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

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


    正如您正确猜测的那样,现代浏览器通常猜测正确——但并不总是如此。作为代理,请确保在标题中声明编码。

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


    正如您正确猜测的那样,现代浏览器通常猜测正确——但并不总是如此。作为代理,请确保在标题中声明编码。

    是否重新键入文本?你是说我应该创建单独的文件,每个文件都用不同的编码编写和保存?那么我如何决定提供哪个文件呢?是的,但是您应该按照代理的建议,在HTML中定义字符集编码,这将节省更多的时间。如果您想要单独的文件,应该可以编写一个脚本,将UTF-8自动编码到需要支持的其他编码中,但要向前看,拥有同一内容的多个副本可能会成为维护的麻烦。我相信他的意思是当客户请求一个文件并明确要求使用其他编码时的情况。虽然可能,但现代浏览器不太可能不支持utf-8(据我对欧盟/美国的偏见所知)。感谢各位的贡献。我现在可以说,使用一种编码而不是多种编码(比如UTF-8)并在html和服务器端显式定义编码可能是一个更好的主意吗?因为我访问过很多大型中文网站(如雅虎中国),如果你把编码改成它不支持的内容,内容就会变得乱七八糟。我假设用多种编码方式维护内容的麻烦不值得这么做。是的,维护一个文件几乎总是比维护多个文件简单。重新键入文本?你是说我应该创建单独的文件,每个文件都用不同的编码编写和保存?那么我如何决定提供哪个文件呢?是的,但是您应该按照代理的建议,在HTML中定义字符集编码,这将节省更多的时间。如果您想要单独的文件,应该可以编写一个脚本,将UTF-8自动编码到需要支持的其他编码中,但要向前看,拥有同一内容的多个副本可能会成为维护的麻烦。我相信他的意思是当客户请求一个文件并明确要求使用其他编码时的情况。虽然可能,但现代浏览器不太可能不支持utf-8(据我对欧盟/美国的偏见所知)。感谢各位的贡献。我现在可以说,使用一种编码而不是多种编码(比如UTF-8)并在html和服务器端显式定义编码可能是一个更好的主意吗?因为我访问过很多大型中文网站(如雅虎中国),如果你把编码改成它不支持的内容,内容就会变得乱七八糟。我认为用多种编码方式维护内容的麻烦是不值得的