Browser 如果我在ISO-8859-1网站上使用Unicode,浏览器将如何解释这一点?

Browser 如果我在ISO-8859-1网站上使用Unicode,浏览器将如何解释这一点?,browser,unicode,character-encoding,iso-8859-1,Browser,Unicode,Character Encoding,Iso 8859 1,所以我有一个网站,使用ISO-8859-1编码,我不能改变这一点。我想确保我输入网站上的web应用程序的内容得到正确解析。解析器在逐个字符的基础上工作。我也不能更改解析器,我只是编写文件让它处理。我告诉应用程序在解析后显示的文件中的内容包含Unicode字符(或者至少我假设是这样,即使它们是由映射到CP437的Windows Alt代码生成的)。由于解析器的逐字符操作,因此不能使用实体。解析器在输出时转义的唯一字符是标记敏感的字符,如符号and、小于和大于符号。我会继续,并把它通过,看看它看起来

所以我有一个网站,使用ISO-8859-1编码,我不能改变这一点。我想确保我输入网站上的web应用程序的内容得到正确解析。解析器在逐个字符的基础上工作。我也不能更改解析器,我只是编写文件让它处理。我告诉应用程序在解析后显示的文件中的内容包含Unicode字符(或者至少我假设是这样,即使它们是由映射到CP437的Windows Alt代码生成的)。由于解析器的逐字符操作,因此不能使用实体。解析器在输出时转义的唯一字符是标记敏感的字符,如符号and、小于和大于符号。我会继续,并把它通过,看看它看起来像什么,但输出只能在一个出版上看到,它必须花几天时间获得批准,这将要求太多,只是一个测试用例

所以,长话短说,如果我告诉一个网站输出▼ÇÑ¥☺☻ 在一个带有元标记的站点上,说明它应该使用ISO-8859-1,浏览器会自动检测Unicode并显示它吗?还是会将其翻译为ISO-8859-1并获得不同的字符集

更新:我创建了一个临时测试站点,在那里我使用UTF-8在记事本++中创建了测试文件,没有BOM表,但使用了一个元标记,将编码设置为ISO-8859-1。

如果您发送到某个告知您期望的内容,那么是的,您将获得:(

考虑到UTF-8序列是通过一个具有高位集的8位字符(即字符值>127)引入的。期望一个简单的8位字符编码的东西如何决定一个特定序列应该被解释为UTF-8,而不是它被告知使用的编码

解析器在输出时转义的唯一字符是标记敏感的字符,如符号and、小于和大于符号

外部的任何内容都可能导致问题。编码为ISO-8859-1的HTML可以显示如下字符▼☺☻, 但只有将它们转义为
▼;☺;☻;
。否则,它们就超出了编码范围

ISO-8859-1支持字符枓¥,在正确实施的系统中不应造成问题

解析器能否在显示之前正确解析文件取决于它的实现,以及它和它的web容器是否尊重您可能发送给它的任何编码元数据


Unicode是由多种编码支持的字符集。例如,U+263a☺ 以UTF-8编码成为字节
e2 98 ba
,如果被视为ISO-8859-1,它将被解码为˜;:

,因为你可以检测到一个有效的UTF-8字节串,并且有可能它实际上应该以ISO-8859-1编码,就像网站上说的那样,这是非常低的。请访问并查看引文来源19和19#20.我刚刚想到,浏览器经常根据内容的上下文而不是真正的html规范来呈现html,那么浏览器是否会在可能出现UTF-8的上下文的情况下呈现UTF-8,即使它根据html规范应该使用ISO-8859-1?@grg-n-sox:大多数浏览器都遵循标准,这给了mojibake。但显然IE是用来猜测编码的忽略服务器所说的内容。