繁体   English   中英

java servlet中的错误编码(tomcat)

[英]Wrong encoding in java servlet (tomcat)

我正在尝试为Tomcat 7中的JSP / servlet页面设置正确的编码。但是,我必须要成功。 我根据这个stackexchange线程给出的建议做了一些尝试: 字符编码JSP在JSP中显示错误但在URL中没有显示:“á»Ã»é»Ã©” ,但它们不起作用。 好奇的事实在于,如果我让页面“按原样”浏览器将其识别为具有编码Windows-CP 1252,并且当我更改为UTF-8时,文本将正确显示。 但是应用过滤器和其他机制,浏览器将编码设置为UTF-8,并且无法正确显示它。 实际上对于后者,如果我改变编码,结果至少是可怕的。

我现在就明白了。 在我作为第一条指令的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编码的

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

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

另外,尝试以UTF-8格式保存页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM