我的html文档开头如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
אבגד
如果我将文档编码为UTF-8
,则它会在浏览器中正确显示。如果我编码为UTF-8 without BOM
(我理解为更标准),我会得到不同寻常的字符。
我做错了什么?
答案 0 :(得分:1)
您的网络服务器声明编码为ISO-8859-1
,浏览器尊重该编码。具有讽刺意味的是,使用字节顺序标记向浏览器发送更强信号,编码必须实际为UTF-8。 (确切原因是complicated and boring。)
修复Web服务器取决于服务器的内容。如果这是Apache httpd服务的磁盘上的静态资源,则AddCharset UTF-8 .html
之类的内容将添加标题。
如果动态提供此资源,则应确保在生成响应时添加正确的HTTP标头,例如Python的基本http服务器self.send_header('Content-Type', 'text/html; charset=utf-8')
。