首頁  >  問答  >  主體

java - SpringMVC@ResponseBody中文乱码

PHP中文网PHP中文网2721 天前697

全部回覆(6)我來回復

  • 高洛峰

    高洛峰2017-04-18 10:44:03

    xml檔加上這個就可以了

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

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 10:44:03

    不知道MediaType是啥,不過我一直是用produces = "application/json;charset=UTF-8"這個編碼,還是說前台的編碼不是utf-8

    回覆
    0
  • 黄舟

    黄舟2017-04-18 10:44:03

    如果伺服器是 Tomcat,則換到 8.0 以上版本。舊版缺省情況下並非 UTF-8 編碼。

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 10:44:03

    配置一個 spring 的編碼過濾器
    隨手搜的一個,供參考
    如果是新項目去看看 spring boot 吧,基本不用怎麼配置,像中文亂碼這些都默認配好了。

    回覆
    0
  • 阿神

    阿神2017-04-18 10:44:03

    說一下亂碼問題 GET和POST
    POST在web.xml檔中設定spring過濾器,使用servlet原始方法但是這樣JSON問題還是解決不瞭如圖可以解決
    GET亂碼tomcat7及以下在web.xml中配置URIencoding=utf-8 或拿過來用ISO-8859-1手動解碼然後再用UTF-8編碼

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:44:03

    配置一個簡單的CharacterFilter可能解決不了, 如果使用的是Jackson2,試試下面這種方案

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

    jackson1同理,只是類換成了MappingJacksonHttpMessageConverter

    回覆
    0
  • 取消回覆