Tomcat无法正确编码包含unicode字符的字符串文字。问题发生在Linux服务器上,但不在我的开发机器上(Windows)。它仅影响字符串文字(不是从DB或文件中读取的字符串!!!)。
URIEncoding="utf-8"
。以上任何内容均无效。关于我可能遗失的任何想法?
public class Test extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/plain;");
Writer w = resp.getWriter();
w.write("Μαλακία Latin"); //Some unicode characters
w.close();
}
以上在浏览器中显示了这一点。 ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ拉丁文
答案 0 :(得分:4)
当javac通过在编译时传入-encoding'utf-8'或-encoding'iso-8859-1'来强制读取文件时,可以强制进行文件编码。只需确保它匹配您的.java文件实际编码为的任何编码。
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html
-encoding encoding设置源文件编码名称,例如EUC-JP和UTF-8。如果未指定-encoding,则平台默认 使用转换器。
答案 1 :(得分:3)
尝试设置file.encoding系统属性,例如Linux JVM命令行上的-Dfile.encoding=utf-8