ajax向后台请求数据包含中文乱码问题解决
2017-08-10 09:59
495 查看
由于ajax默认返回编码为utf-8,故后台在返回数据时,应当将数据编码转为utf-8形式,如:java.net.URLEncoder.encode(businesshtmlStr,"utf-8");
前台ajax接受数据时,用utf-8解码,如:decodeURIComponent(e)
若整个项目为utf-8编码,则不会存在此问题
若以上方法不行,则采用以下通用解决方法,注意:以下方法只是针对spngmvc前后台交互出现乱码,而非ajax请求前后台返回数据取数据出现乱码:
springmvc前后台交互出现乱码,一般都是在web.xml文件添加
<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>
或者是在springmvc-servlet.xml文件中添加
<!-- 解决@ResponseBody中文乱码 -->
<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>
看见网上其他解决方法:给@RequestMapping注解后面加上相应的procedure或是在前台ajax方法指定相应的编码,注意,这些都不是解决办法,procedure或是ajax前台指定编码都只是指定而已,而非转码,这里ajax获取数据出现乱码,是因为后台编码方式与ajax解码方式不一致导致,ajax默认utf-8,而后台是gbk或是其他编码方式便会出现中文乱码问题
前台ajax接受数据时,用utf-8解码,如:decodeURIComponent(e)
若整个项目为utf-8编码,则不会存在此问题
若以上方法不行,则采用以下通用解决方法,注意:以下方法只是针对spngmvc前后台交互出现乱码,而非ajax请求前后台返回数据取数据出现乱码:
springmvc前后台交互出现乱码,一般都是在web.xml文件添加
<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>
或者是在springmvc-servlet.xml文件中添加
<!-- 解决@ResponseBody中文乱码 -->
<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>
看见网上其他解决方法:给@RequestMapping注解后面加上相应的procedure或是在前台ajax方法指定相应的编码,注意,这些都不是解决办法,procedure或是ajax前台指定编码都只是指定而已,而非转码,这里ajax获取数据出现乱码,是因为后台编码方式与ajax解码方式不一致导致,ajax默认utf-8,而后台是gbk或是其他编码方式便会出现中文乱码问题
相关文章推荐
- Volley 请求后台数据中文乱码问题解决
- Ajax向后台请求的数据中中文编码的问题
- 从页面向后台(struts)post数据,中文乱码问题解决
- 在jQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢
- ajax提交中文数据,乱码问题,困扰我整整两天。终于被我解决。。。
- ajax向后台传递中文数据乱码问题
- STRUTS+AJAX+JSP 请求到后台乱码问题解决方法
- ajax中向后台传值时如何解决中文乱码的问题
- jquery中ajax方法提交数据时,中文乱码问题解决。
- $.ajax()前台数据传至后台,中文乱码问题
- ajax解决中文数据乱码问题
- tomcat发布项目 ajax方式post请求返回数据中文乱码问题(Eclipse中tomcat正常)
- dhl:ajax无法跨域改用getJSON(解决服务器返回json数据中文为乱码的问题$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; chars)
- 使用Struts 2框架、ajax提交中文数据在后台乱码的问题
- 解决sencha touch显示.JSON包含中文数据时显示乱码问题
- 关于客户端与服务器ajax使用json数据交互,出现中文乱码或因包含html标答而报错的问题(base64加密)
- jsp get方式请求参数中包含中文乱码问题解决
- Form提交中文数据时,后台获得出现乱码问题解决。
- jsp中 ajax的get请求的中文乱码问题的解决方法
- 使用Struts 2框架、ajax提交中文数据在后台乱码的问题