让我感到好奇的是--HTML5中默认的字符编码是UTF-8。但是,如果我有一个简单的HTML文件,其中包含HTML5 doctype,如下面的代码所示,我会得到:
俄语“你好”:“--------------------”
在Chrome 33+、Safari 6、IE11等浏览器中
<!DOCTYPE html>
<html>
<head></head>
<body>
<p>"hello" in Russian is "здраствуйте"</p>
</body>
</html>
怎么回事?浏览器不应该使用UTF-8 Unicode标准并正确显示文本吗?我使用的是Coda,它默认设置为使用UTF-8编码保存html文件,所以这不是问题所在。
3条答案
按热度按时间oyxsuwqo1#
示例中的文本数据是UTF-8编码的文本,被错误解释为window-1252编码。原因是尚未指定编码,浏览器被迫进行猜测。若要解决此问题,请指定编码;请参阅W3C页面Character encodings。两种独立于服务器设置的简单方法,只要服务器不在HTTP头中发送错误的编码信息:
1)将文件另存为UTF-8 * 和BOM*(您的创作程序中可能有此选项。
2)将以下标记添加到
head
部件中:HTML5没有指定一个默认编码。相反,浏览器 * 应该 * 在没有声明编码的情况下进行猜测。这是一个相当复杂的过程,在8.2.2.2确定字符编码中有描述。
ycl3bljg2#
如果要确定浏览器将使用哪个字符集,则必须在页头中
否则您将受到本地设置和浏览器自动化的摆布。
ghhaqwfi3#
是的,就像你说的,我试过
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
在编辑一个带有西里尔字符的Notepad++ HTML文件时,我在
<head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><title>File Listing For: [G:\] on 08/12/2022</title>
页的开头插入了这样的语句,而我的Firefox版本29完美地显示了西里尔字体的页面。我也没有在标题语句中使用西里尔字符。谢谢