spring-mvc无法解码汉字

时间:2011-03-23 16:16:31

标签: java servlets spring-mvc character-encoding

我已阅读此jsp page encoding problem和此Save Chinese characters with Spring-MVC / Java

自项目开始以来,我在web.xml中有以下代码片段,它似乎正确注入:

<!-- Reads request input using UTF-8 encoding -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

http请求有这个标题“content-type:application / x-www-form-urlencoded; charset = UTF-8”set 但是日志行显示了这个: 请求Body Bean:[UserBean @ 4a8da092 fristname ='??',lastname ='??']

另外一些事情是我使用NetBeans,如果我将鼠标移到变量firstname和lastname,它们会正确显示。 不知道我需要什么才能让它正常工作。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

听起来一切都很好,但你的记录器无法显示这些字符,或者你正在使用的文本查看器,看不到这些日志无法解码字符。

您可以通过在十六进制编辑器中打开日志文件并查找与您的输入匹配的UTF-8值(具有前导1或显示为负值的字节)来排除文本查看器