我的程序从数据库中获取消息,该数据库包含英语,德语和几种东欧语言。我的Python脚本通过以下方式设置编码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
并使用从数据库中正确获取的值(如果我在我的日志中检查)。
不幸的是,我测试的所有浏览器(IE8,Firefox 3.0.10,Opera 9.64)都根据我的本地语言设置切换到:
只要我在浏览器中手动切换字符编码,一切正常。
如果我使用UTF-8手动生成HTML文件(使用TextMate各自的jEdit测试),同样的情况也会发生,尽管两个编辑都正确显示内容。
这对英语和德语都有效,但不适用于俄语。如何强制“正确”的字符编码?
ANSWER
VirtualHost(Apache配置)部分中的以下条目为我做了诀窍:
AddDefaultCharset utf-8
非常感谢我指出了正确的方向,这对我有很大的帮助!
答案 0 :(得分:3)
当文档通过HTTP传输时,the HTTP header information are the crutial information:
在确定文档的字符编码时(从最高优先级到最低优先级),符合条件的用户代理必须遵守以下优先级:
- “
charset
”字段中的HTTP“Content-Type
”参数。META
声明,其中“http-equiv
”设置为“Content-Type
”,值设置为“charset
”。- 在指定外部资源的元素上设置
醇>charset
属性。
因此,请确保在Content-Type
header field中声明字符编码,而不仅仅是在文档中。