在Linux上遇到编码问题,而不是Windows
我遇到了一个编码问题,它困扰了我几个星期,似乎没有任何工作。我有一个在我的本地机器上工作正常的网站,但是当我将jsp文件推送到一个Linux机器箱进行审阅时,以前可以正常显示的字符现在显示为时髦字符。在Linux上遇到编码问题,而不是Windows
由于某些原因,某些字符显示得很好,但其他字符不会正确编码。正在从java.properties文件中读取页面上的所有文本,并使用bean将其输出到页面。
我在页面上添加了一个元标记来设置编码,它什么也没做。我也添加了<%@ page contentType =“text/html; charset = UTF-8”pageEncoding =“UTF-8”%>但是这并没有在Linux上做任何事情,并且实际上使编码错误出现在我的本地Windows机器上。
任何帮助将不胜感激。
检查加载性能的方法是使用属性文件实际写入字符编码。
没有明确设置此,对文件系统的默认编码时,它是ISO拉丁在Windows上为-1,在某些Linux发行版上为UTF-8。
下需要进行字符编码一起玩到Nixes和Nuxes正常工作:
- 文件系统编码
- 数据库编码(似乎不适用)
- 数据库连接器编码
- Java内部字符串编码(如果我没有记错的话,UTF-16)
- Java输出编码
- HTML页面编码
随着你的页面指令,你只处理最后一个项目符号。换句话说,您正在指导浏览器将页面解码为UTF-8,但这不是您要发送的内容。
请看this (admittedly a few years old) paper,特别是第11章。
另外,检查两台机器上的物理文件。我看到几个FTP客户端在传输过程中清理文件。快速检查是将文件推送为html而不是jsp。你会得到所有<% %>
序列的垃圾,但其他文字应该显示不变。你也已经把应用服务器带出了这个等式。如果文本仍然很时髦,那么您的FTP或WebDAV客户端试图“帮助”。
查看服务器发送的http头。这是浏览器在其他任何地方寻找编码的第一位。
检查并查看服务器在Linux机器上运行的区域设置。 (无论“LC_ALL”或“LANG”环境变量设置为什么)。 – Pointy 2010-03-22 20:46:41