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