1

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

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

我在页面中添加了一个元标记来设置编码,但什么也没做。我还添加了 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 但这在 linux 机器上没有任何作用,实际上使编码错误出现在我的本地 Windows 机器上。

任何帮助将不胜感激。

4

4 回答 4

1

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

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

于 2010-03-22T20:51:22.533 回答
1

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

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

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

看看这篇(诚然几年前的)论文,尤其是第 11 章。

于 2010-03-22T20:51:39.757 回答
0

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

于 2010-03-22T21:35:31.320 回答
0

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

于 2010-03-22T21:26:02.813 回答