java servlet中的错误编码(tomcat)

时间:2014-03-03 17:57:27

标签: java jsp encoding character-encoding tomcat7

我正在尝试为Tomcat 7中的JSP / servlet页面设置正确的编码。但是,我必须要成功。我根据这个stackexchange线程给出的建议做了一些尝试:Character encoding JSP -displayed wrong in JSP but not in URL: "á » á é » é",但是他们没有工作。 好奇的事实在于,如果我让这些页面和#34;以及#34;浏览器将它们识别为具有Windows-CP 1252编码,当我更改为UTF-8时,文本显示正确。但是应用过滤器和其他机制,浏览器将编码设置为UTF-8,并且无法正确显示它。事实上,对于后者,如果我改变编码,结果至少是可怕的。

2 个答案:

答案 0 :(得分:1)

我现在就明白了。在我作为第一条指令的JSP页面中:

<%@ page pageEncoding="utf-8" %>

这解决了所有问题。将response.setCharacterEncoding(“UTF-8”)作为第一条指令的其他可能性不起作用。

关于servlet,我需要在获取PrintWriter对象之前设置字符编码:

response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();

这些东西解决了我的奇怪角色问题。总结一下:问题是来自JSP / servlet的响应没有指出它本身是用UTF-8编码的

答案 1 :(得分:0)

可能不是JSP问题。您是否尝试直接在页面中执行此操作?

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>

另外,请尝试以UTF-8格式

保存页面