坏的无BOM UTF-8编码

5
我使用Notepad++将所有文件转换为UTF-8无BOM编码。现在没有BOM的问题了,但是UTF-8无BOM编码根本不起作用,就像我的网站是ANSI编码一样。所有特殊字符都显示为:Â、Ú或á。
这可能是什么原因,我该如何解决?

http://chusmix.com/?ciudad=Pilar

谢谢

4个回答

6
您需要告诉浏览器接受UTF-8编码,这样它才能正确地解析多字节字符。请在您的 标签中添加以下meta标签,并与其他meta标签一起使用:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

更新

对于HTML5,请改用以下标签:

<meta charset="utf-8">


如果所有页面都是utf8编码,那么也将其添加到HTTP头中。 - Flame
顺便提一下,如果您的文件以UTF8无BOM编码,但恰好包含属于ANSI集的字符,则某些编辑器将以ANSI格式打开它,而不是UTF8。因此,请检查您的编辑器设置,以避免在不知情的情况下切换到ANSI。 - Luke

4
你需要告诉你的Web服务器告诉客户端现在一切都是utf-8编码...有两种方法可以做到这一点:
  • HTTP头部:这是Web服务器本身的设置,Content-Type: text/html; charset=UTF-8

  • 元标签:这是您可以放置在HTML文件头部的内容,<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

请查看http://www.w3.org/International/O-HTTP-charset.en.php?changelang=en。您可以在此处检查网站的字符集及其它问题。

1

HTML代码中没有包含任何编码,因此浏览器可能将其解释为ISO-LATIN而不是UTF-8。请查看W3联盟的设置HTTP字符集参数


1
浏览器并不一定要将其解释为 ISO-Latin,它只是默认使用该编码。这可以在各个用户代理中更改。 - deceze
@deceze:抱歉,我的句子有歧义。我是指“它必须是在解释”,就像“很可能是这样”。我重新措辞以使其更清晰明了。 - André Caron

0

发送一个头部信息,告知浏览器文档所使用的字符集编码:

header('Content-Type: text/html; charset=UTF-8');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接