被html5、utf-8和8859-1搞糊涂了

被html5、utf-8和8859-1搞糊涂了,html,utf-8,iso-8859-1,Html,Utf 8,Iso 8859 1,昨天我将一个html页面从“4.01严格”升级到html5。 * 字符编码为iso-8859-1。当utf-8被指定为字符集时,将失败,甚至不会对其进行解析,这显然是因为我使用了诸如²之类的脚注字符。它们位于字符集的上128字节中。让我困惑的是,我一直在读utf-8的前256个字节是8859-1 有人知道为什么页面不会验证为utf-8吗?实际上,只有前128个代码点在utf-8中被编码为ASCII,但utf-8不是ASCII,特别是接下来的128个代码点不同 如果要将文件作为UTF-8使用,则需

昨天我将一个html页面从“4.01严格”升级到html5。
*
字符编码为iso-8859-1。当utf-8被指定为字符集时,将失败,甚至不会对其进行解析,这显然是因为我使用了诸如²之类的脚注字符。它们位于字符集的上128字节中。让我困惑的是,我一直在读utf-8的前256个字节是8859-1


有人知道为什么页面不会验证为utf-8吗?

实际上,只有前128个代码点在utf-8中被编码为ASCII,但utf-8不是ASCII,特别是接下来的128个代码点不同

如果要将文件作为UTF-8使用,则需要将其重新保存为UTF-8。

字符²(“上标二”)由数字0xb2(178十进制)表示,但在8859-1和UTF-8中表示不同

在8859-1中,它表示为一个值为0xb2的单字节

在UTF-8中,它表示为两个连续的字节,值为0xc2、0xb2。有关编码的说明,请参阅

(对于包含8位字符的文件,8859-1比UTF-8更紧凑,但它不能表示超过255位的任何内容。UTF-8与ASCII兼容,对于7位字符,与8859-1兼容,对于大多数文本来说相当紧凑,可以表示100多万个不同的字符。)

仅包含7位字符的文件可以解释为ASCII、8859-1或UTF-8。包含8位字符的文件不能使用;它必须被翻译

如果您在类Unix系统上安装了
iconv
命令,则:

iconv -f iso-8859-1 -t utf-8

将执行适当的翻译。

UTF-8的前128个字符为ASCII。上面的128个字符和ASCII实际上是7位,仅编码了128个字符。任何8位都是扩展的ASCII码,完全取决于代码页/编码。显然,我误解了8859-1和utf-8之间的关系。谢谢你的更正。我原以为它们对于所有可表示的字符都是一样的,有些代码页切换字符偷偷地进入128-159。