溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決SpringMvc后臺接收json數據中文亂碼的問題

發布時間:2021-07-13 16:07:49 來源:億速云 閱讀:224 作者:小新 欄目:編程語言

這篇文章主要介紹了如何解決SpringMvc后臺接收json數據中文亂碼的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1、使用ajax從前臺頁面傳輸數據到后臺controller控制器的時候,出現中文亂碼(問號???)。

之前在網上找了各種解決方案,都行不通,最后發現是tomcat服務器接收數據的問題

解決方案:

方式一:在controller接收參數時,對參數進行轉碼

@ResponseBody
@RequestMapping(value="/getJsonDataByCityName",produces="application/json")
public String getJsonByName(HttpServletRequest request,HttpServletResponse response,@RequestParam String city_name)throws ServletException,IOException
{
  //response.setContentType("text/html;charset=UTF-8");

  //request.setCharacterEncoding("UTF-8");//解決post亂碼問題
  System.out.println(request.getCharacterEncoding());
  city_name = new String(city_name.getBytes("ISO-8859-1"), "UTF-8");
  System.out.println("city_name:"+city_name);
}

方式二:

配置tomcat目錄下的service.xml文件

tomcat7/conf/server.xml

給該行代碼加上 URIEncoding="UTF-8" 的編碼屬性

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

原因分析:

其實亂碼問題出現的原因,就是由于默認的tomcat配置,接收請求是以ISO-8859-1來轉碼,導致中文出現了亂碼問題,只要能正確的以utf-8來轉碼,則可以解決亂碼問題。

2、普通數據傳輸,從jsp頁面傳到后臺controller,中文亂碼問題解決方案

(1)、首先檢查jsp頁面編碼格式是否是utf-8

(2)、設置中文過濾

<!-- 中文編碼 -->
  <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>

(3)、springMvc配置文件中設置JSON數據轉換

<mvc:annotation-driven>
  <mvc:message-converters register-defaults="true">
    <!-- 啟動Spring MVC的注解功能,完成請求和注解POJO的映射 注解請求映射
    默認是ISO-88859-1,避免亂碼這里設置為UTF-8 -->
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
      <property name="supportedMediaTypes" value="text/html;charset=UTF-8" />
    </bean>
    <!-- 啟動JSON格式的配置,自動將格式轉換成JSON格式,不需要其他類 -->
    <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
      <property name="supportedMediaTypes" value="application/json;charset=UTF-8" />
    </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何解決SpringMvc后臺接收json數據中文亂碼的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女