springmvc项目设置ResponseBody返回String编码

问题场景

现在项目和浏览器一般都是utf8编码,如果通过浏览器访问后端接口通常没有问题

如果在后端调用另一个服务的接口,返回值的编码默认是iso-8859-1,如果字符串包含中文,调用方就会出现乱码

解决方案

修改springmvc配置文件,增加converters,代码如下

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/plain;charset=UTF-8value>
                list>
            property>
        bean>
    mvc:message-converters>
mvc:annotation-driven>

<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg value="UTF-8" />
        bean>
    mvc:message-converters>
mvc:annotation-driven>

服务端会在response header中设置编码,在没有设置默认编码的场景就不会出现乱码了。

你可能感兴趣的:(springmvc)