?Travelers
2021-08-14 00:25
采纳率: 57.1%
浏览 59
已结题

springmvc中使用注解@responseBody @RequestMapping返回类型为String时报乱码,已经在web.xml中配置了中文乱码过滤器

为什么springmvc中使用注解@responseBody
@RequestMapping增加一个属性produce=="text/plain;charset=utf-8",否则出现乱码,
在web.xml中配置了过滤器,不是应该不需要这个属性了吗
只有返回类型为String时报乱码,返回值为别的类型时就不需要属性produce,也不会出现乱码

img

img

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • Zht_bs 2021-08-14 09:50
    已采纳

    tomcat7\conf\ server.xml 这个文件

    加上 URIEncoding="UTF-8"

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 曦陽惜夏 2021-08-14 09:03

    springxml中配置字符集了吗

    评论
    解决 无用
    打赏 举报
  • SpringBoot中文社区 2021-08-14 19:48

    你返回String,spring默认就使用了 StringHttpMessageConverter 来对执行响应。它的默认编码是:ISO_8859_1
    你可以通过XML文件进行配置的

        <mvc:annotation-driven conversion-service="conversionService">
            <mvc:message-converters register-defaults="true">
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <constructor-arg index="0" value="UTF-8"/>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题