UTF-8 html,没有BOM显示奇怪的字符

问题描述 投票:9回答:2

我有一些HTML,其中包含一些外来字符(€,ó,á)。 HTML文档另存为UTF-8,不带BOM。当我在浏览器中查看页面时,外来字符似乎已被陌生的字符组合(â,ó,Ã)取代。只有当我将HTML文档另存为带有BOM表的UTF-8时,字符才能正确显示。

我真的不想在我的文件中包含BOM,但是有人知道为什么会这样做吗?并解决它? (不包括物料清单)

html utf-8 byte-order-mark
2个回答
16
投票

您可能未在HTML文件中指定正确的字符集。 BOM(感谢@Jukka)使浏览器进入UTF-.8模式。如果没有它,则需要使用其他方式来声明文档UTF.8。

如果您有权访问服务器配置,则可能要确保服务器没有发送错误的字符集信息。参见例如How to change the default encoding to UTF-8 for Apache?

如果您只能访问HTML,则可以在文档的头部添加此meta标记:

<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>

或@Mathias指出,新的HTML 5

<meta charset="utf-8"> 

((仅当您使用HTML 5文档类型时才有效,即使您不使用HTML 5标记,该文档类型也不再具有良好的论点。)


2
投票

<meta charset="utf-8">中插入<head>。或在服务器端设置标头Content-Type: text/html;charset=utf-8

您也可以在.htaccess中添加:AddDefaultCharset UTF-8更多信息,请点击http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

© www.soinside.com 2019 - 2024. All rights reserved.