struts html字符编码和解码

时间:2017-01-26 20:08:00

标签: java jsp utf-8 struts2 decode

我的Tomcat server.xml和web.xml以及jsp页面编码已设置为“UTF-8”。 当html表单发布一个特殊字符如Ď时,java代码会故意使用StringEscapeUtils.unescapeHtml4(str)在db中保存这个特殊字符。。当我从DB中获取值然后执行系统打印并在jsp标记中,两个地方都显示符号? (问号)。 使用另一个帖子“€symbol not a defined”,它解决了jsp渲染问题。但是tomcat系统输出/控制台仍然显示? (问号)

谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,听起来您确认数据在数据库级别被持久保存和支持。我现在尝试添加一个servlet过滤器,让你的struts webapp以UTF-8编码处理所有请求和响应。

定义如下字符集过滤器:

<filter-name>Set Character Encoding</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>

<!-- Define filter mappings for the defined filters -->
<filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <servlet-name>action</servlet-name>
</filter-mapping>