我找到了一个包含字符串“don't”的网站。明显的意图是“不要”这个词。我看着源代码希望看到一些字符引用,但没有(它只是显示文字字符串“不要”。谷歌搜索没有产生任何东西(期望很多其他网站有同样的问题!)。有谁解释这里发生了什么?
编辑:这是使用的元标记:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
这会不会导致页面在HTTP标头中作为Latin-1提供?
答案 0 :(得分:5)
在浏览器中,将页面编码切换为“UTF-8”。您看到的是right single quote character,它由UTF-8中的八位字节0xE2 0x80 0x99
编码。在你的charset,windows-1252中,这3个八位字节呈现为“—。该页面应该在HTTP标头或HTML <meta>
标签中明确指定UTF-8作为其字符集,但它可能不是。
答案 1 :(得分:1)
根据维基百科中的Character encondings in HTML文章:
HTML(超文本标记语言)有 自1991年以来一直在使用,但HTML 4.0 (1997年12月)是第一个 标准版本在哪里 给出了国际字符 合理完成治疗。当一个 HTML文档包含特殊内容 超出范围的字符 七位ASCII两个目标是值得的 考虑:信息 诚信,以及通用浏览器 显示。
我认为您检查过的网站并未考虑到这一点。
答案 2 :(得分:1)
这与编码有关。回顾一下源代码,顶部是否有标签(charset)?我的猜测是它将是UTF8 - 虽然它可能是完全不同的东西。
答案 3 :(得分:1)
This thread explains all。尽管页面具有UTF字符(甚至可能正确报告其自己的编码),但在可能将其编码报告为非UTF-8的服务器上使用奇怪的UTF-8撇号字符(可能源自Word文档)的组合)。