我遇到了一个编码问题,这个问题困扰了我几个星期,似乎什么都没有用。我有一个在我的本地机器上工作正常的网站,但是当我将jsp文件推送到Linux盒子进行审查时,之前呈现的字符现在显示为时髦的字符。
出于某种原因,某些字符显示得很好,但其他字符无法正常编码。页面上的所有文本都是从java .properties文件中读取的,并使用bean输出到页面。
我在页面中添加了一个元标记来设置编码,但没有做任何事情。我还添加了<%@ page contentType =“text / html; charset = UTF-8”pageEncoding =“UTF-8”%>但这在linux盒子上什么也没做,实际上我的本地windows机器上出现了编码错误。
非常感谢任何帮助。
答案 0 :(得分:1)
检查加载属性的方法是否使用实际写入属性文件的字符编码。
如果没有明确设置,则使用文件系统的默认编码,Windows上为ISO-Latin-1,某些Linux发行版为UTF-8。
答案 1 :(得分:1)
以下需要一起使用才能使字符编码在Nixes和Nuxes中正常工作:
使用您的页面指令,您只能解决最后一个项目符号。换句话说,您正在指示浏览器将页面解码为UTF-8,但这不是您要发送的内容。
请特别查看this (admittedly a few years old) paper,第11章。
答案 2 :(得分:0)
另外,检查两台计算机上的物理文件。我见过几个FTP客户端在传输过程中丢失了文件。快速检查是将您的文件推送为html而不是jsp。你将获得所有<% %>
序列的垃圾,但其他文本应该保持不变。您还将应用程序服务器排除在外。如果文本仍然很时髦,那就是你的FTP或WebDAV客户端试图“帮助”。
答案 3 :(得分:0)
查看服务器发送的http标头。这是浏览器在其他任何事情之前寻找编码的第一个地方。