【问题标题】:HTML encoding: eastern european languagesHTML 编码:东欧语言
【发布时间】:2010-08-16 23:40:06
【问题描述】:

我的程序正在从包含英语、德语和几种东欧语言的数据库中获取消息。我的 Python 脚本通过以下方式设置编码:

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

并使用从数据库中正确获取的值(如果我在我的日志中检查)。

不幸的是,我测试的所有浏览器(IE8、Firefox 3.0.10、Opera 9.64)都会根据我的本地语言设置切换到:

  • Firefox 中的西方 ISO-8859-1
  • IE 中的西欧 (Windows)
  • Opera 中的自动操作

我在浏览器中手动切换字符编码后一切正常。

如果我使用 UTF-8 手动生成 HTML 文件(使用 TextMate 各自的 jEdit 测试),也会发生同样的情况,尽管两个编辑器都能正确显示内容。

这适用于英语和德语,但不适用于俄语。如何强制“正确”字符编码?

回答

VirtualHost(Apache 配置)部分中的以下条目对我有用:

AddDefaultCharset utf-8

非常感谢您为我指明了正确的方向,这对我很有帮助!

【问题讨论】:

  • 非常好的问题。很感兴趣。

标签: html character-encoding


【解决方案1】:

当文档通过 HTTP 传输时,the HTTP header information are the crutial information:

[...] 符合标准的用户代理在确定文档的字符编码时必须遵守以下优先级(从最高优先级到最低优先级):

  1. Content-Type”字段中的 HTTP“charset”参数。
  2. META 声明,其中“http-equiv”设置为“Content-Type”,值设置为“charset”。
  3. 在指定外部资源的元素上设置的 charset 属性。

因此,请确保在 Content-Type header field 中声明字符编码,而不仅仅是在文档中。

【讨论】:

    猜你喜欢
    • 2011-01-17
    • 1970-01-01
    • 2021-10-26
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多