【问题标题】:Problem with special characters after migrating a web project迁移 Web 项目后出现特殊字符的问题
【发布时间】:2010-07-21 00:49:00
【问题描述】:

我在 Apache 服务器上有几个包含特殊字符的 HTML 文件。例如,他们使用 © 而不是 ©。它们工作正常,但是一旦我将这些文件迁移到新服务器(也是 Apache),所有这些字符都无法正确显示在浏览器中。

我知道用 HTML 实体替换这些字符会更好,但由于它们有数千个,我无法在短时间内完成。所以,我的问题是:Apache 服务器上是否有任何配置指令必须更改才能正确地为这些文件提供服务?是否可以通过更改 HTML 元标题来解决?

编辑

Geert 对这类问题给出了正确答案。不过,在我的情况下,有些文件用 ISO-8859-1 编码,其余文件用 UTF-8 编码。解决方案是从 ISO-8859-1 转换为 UTF-8,可以使用iconv

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./from.php > ./to.php

【问题讨论】:

    标签: html apache character-encoding special-characters


    【解决方案1】:

    使用 AddDefaultCharset (http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset) 在您的 Apache 配置中设置正确的编码。例如,要为所有文档设置 UTF-8 编码,可以使用:

    AddDefaultCharset utf-8
    

    但是,请谨慎使用此指令。它将设置 all 文档的字符集,因此您必须确保所有这些文档的编码相同。如果您的文档有不同的编码,请不要使用它。

    【讨论】:

      【解决方案2】:

      我假设您没有在 head 元素中使用元内容类型标签?

      听起来您需要查看旧网站的编​​码,然后配置 Apache 以发送相同的编码标头。

      检查标头以查看正在发送的内容。

      另外,最后一点,改变...

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

      (当然,使用正确的字符集)。

      ...应该这样做。

      【讨论】:

      • 我已经在我的所有 HTML 文档中使用了元内容类型。问题是,我在 Apache 中在哪里配置编码?
      • @Cristian C. 查看Geert's answer
      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2011-04-19
      相关资源
      最近更新 更多