【问题标题】:Encountering encoding issues on linux box, not Windows在 linux 机器上遇到编码问题,而不是 Windows
【发布时间】:2010-03-22 20:42:41
【问题描述】:

我遇到了一个编码问题,困扰了我几个星期,但似乎没有任何效果。我有一个网站可以在我的本地机器上正常运行,但是当我将 jsp 文件推送到 Linux 框进行审查时,以前渲染良好的字符现在显示为时髦的字符。

由于某种原因,某些字符显示正常,但其他字符无法正确编码。页面上的所有文本都从 java .properties 文件中读取并使用 bean 输出到页面。

我在页面中添加了一个元标记来设置编码,但它什么也没做。我还添加了 但这在 linux 机器上没有任何作用,实际上使编码错误出现在我的本地 Windows 机器上。

任何帮助将不胜感激。

【问题讨论】:

  • 检查并查看服务器在 Linux 机器上运行的语言环境。 (这将是“LC_ALL”或“LANG”环境变量设置的任何内容。)

标签: java linux content-encoding


【解决方案1】:

检查加载属性的方法是否使用了属性文件实际写入的字符编码。

如果没有明确设置,则使用文件系统的默认编码,在 Windows 上为 ISO-Latin-1,在某些 Linux 发行版上为 UTF-8。

【讨论】:

    【解决方案2】:

    为了使字符编码在 Nixes 和 Nuxes 中正常工作,需要同时进行以下操作:

    • 文件系统编码
    • 数据库编码(似乎不适用)
    • 数据库连接器编码
    • Java 内部字符串编码(UTF-16,如果我没记错的话)
    • Java 输出编码
    • HTML 页面编码

    使用您的页面指令,您只解决了最后一个项目符号。换句话说,您是在指示浏览器将页面解码为 UTF-8,但这不是您要发送的内容。

    看看this (admittedly a few years old) paper,尤其是第11章。

    【讨论】:

      【解决方案3】:

      另外,检查两台机器上的物理文件。我见过几个 FTP 客户端在传输过程中弄乱了文件。快速检查是将文件推送为 html 而不是 jsp。你会得到所有<% %> 序列的垃圾,但其他文本应该显示不变。您还将应用服务器排除在外。如果文本仍然很时髦,那是您的 FTP 或 WebDAV 客户端试图“帮助”。

      【讨论】:

        【解决方案4】:

        查看服务器发送的http headers。这是浏览器首先寻找编码的地方。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-03
          • 1970-01-01
          • 2013-04-19
          • 1970-01-01
          • 2017-12-12
          • 2011-10-18
          • 1970-01-01
          • 2014-03-26
          相关资源
          最近更新 更多