首頁  >  文章  >  web前端  >  在springmvc裡發送ajax出現中文亂碼該如何處理

在springmvc裡發送ajax出現中文亂碼該如何處理

php中世界最好的语言
php中世界最好的语言原創
2018-04-04 17:12:251442瀏覽

這次帶給大家在springmvc裡發送ajax出現中文亂碼應該如何處理,處理在springmvc裡發送ajax出現中文亂碼的注意事項有哪些,下面就是實戰案例,一起來看一下。

使用spingmvc,在JS裡面透過ajax發送請求,並返回json格式的數據,從資料庫拿出來是正確的中文格式,展示在頁面上就是錯誤的? ? ,研究了一下,有幾個解決方法。

我使用的是sping-web-3.2.2,jar

  方法一:

  在@RequestMapping裡面加入produces = "text/html;charset=UTF-8"

@RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = "text/html;charset=UTF-8") 
public @ResponseBody String configrole() { 
 ...... 
}

#方法二:

##因為在StringHttpMessageConverter裡面預設設定了

字元集是ISO-8859-1 所以拿到原始碼,修改成UTF-8並打包到spring-web-3.2.2.jar

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> 
{ 
 public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); 
 .......... 
}

#方法三:

修改org.springframework.http.MediaType它的

建構方法的參數,並在applicationContext-mvc.xml 加入設定

public MediaType(String type, String subtype, Charset charset) { 
  super(type, subtype, charset); 
}

Xml程式碼 

<bean id="stringHttpMessageConverter" 
  class="org.springframework.http.converter.StringHttpMessageConverter"> 
  <property name="supportedMediaTypes"> 
    <list> 
      <bean class="org.springframework.http.MediaType"> 
        <constructor-arg value="text" /> 
        <constructor-arg value="plain" /> 
        <constructor-arg value="UTF-8" /> 
      </bean> 
    </list> 
  </property> 
</bean>

#方法4

org.springframework.http.converter.StringHttpMessageConverter類別是處理請求或對應

字串的類,並且預設字元集為ISO-8859-1,所以在當回傳json中有中文時會出現亂碼。

StringHttpMessageConverter的父類別裡有個List supportedMediaTypes屬性,用來存放StringHttpMessageConverter支援需特殊處理的MediaType類型,如果使用預設字元集。

解決方法,只需在

設定檔中加入以下程式碼:

<mvc:annotation-driven>
<mvc:message-converters>
 <bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
 <value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
如果需要處理其他MediaType 類型,可在list標籤中加入其他value標籤

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

Ajax請求async有哪些方式?應該如何使用

AJAX的XMLHttpRequest物件使用詳解

以上是在springmvc裡發送ajax出現中文亂碼該如何處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn