HTML5编码与西里尔文

eblbsuwk  于 2022-12-09  发布在  HTML5
关注(0)|答案(3)|浏览(190)

让我感到好奇的是--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文件,所以这不是问题所在。

oyxsuwqo

oyxsuwqo1#

示例中的文本数据是UTF-8编码的文本,被错误解释为window-1252编码。原因是尚未指定编码,浏览器被迫进行猜测。若要解决此问题,请指定编码;请参阅W3C页面Character encodings。两种独立于服务器设置的简单方法,只要服务器不在HTTP头中发送错误的编码信息:
1)将文件另存为UTF-8 * 和BOM*(您的创作程序中可能有此选项。
2)将以下标记添加到head部件中:

<meta charset=utf-8>

HTML5没有指定一个默认编码。相反,浏览器 * 应该 * 在没有声明编码的情况下进行猜测。这是一个相当复杂的过程,在8.2.2.2确定字符编码中有描述。

ycl3bljg

ycl3bljg2#

如果要确定浏览器将使用哪个字符集,则必须在页头中

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

否则您将受到本地设置和浏览器自动化的摆布。

ghhaqwfi

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完美地显示了西里尔字体的页面。我也没有在标题语句中使用西里尔字符。
谢谢

相关问题