代码之家  ›  专栏  ›  技术社区  ›  Cristian

迁移Web项目后出现特殊字符问题

  •  1
  • Cristian  · 技术社区  · 15 年前

    我在Apache服务器上有几个具有特殊字符的HTML文件。例如,他们有©而不是 © . 它们工作得很好,但是一旦我将这些文件迁移到一个新的服务器(也是Apache)上,浏览器中就没有正确显示所有这些字符。

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

    编辑

    海尔特 对这种问题给出了正确的答案。不过,在我的例子中,有一些文件是用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
    
    2 回复  |  直到 15 年前
        1
  •  3
  •   Geert    15 年前

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

    AddDefaultCharset utf-8
    

    但是,请仔细使用本指令。它将设置字符集 全部的 文档,所以您必须确保所有这些文档的编码是相同的。如果您的文档有不同的编码,那么不要使用这个。

        2
  •  2
  •   alex    15 年前

    我假设您没有在 head 元素?

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

    检查收割台以查看正在发送的内容。

    另外,最后一点,改变…

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

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

    …应该这样做。