Lösung für das verstümmelte Problem der JSON-Übertragung von Daten in Java: (Empfohlen: Java-Video-Tutorial)
1. Führen Sie ISO-8859 aus Die Parameter zuerst -1 kodieren und dann mit utf-8 dekodieren
@RequestMapping(method=RequestMethod.GET) @ResponseBody public ResponseEntity<ResultModel> searchBorrows(String borrow_name) throws UnsupportedEncodingException{ //解决乱码问题 System.out.println("编码前===:"+borrow_name);//乱码 String borrowName=new String(borrow_name.getBytes("ISO-8859-1"),"utf-8"); System.out.println("编码后:========="+borrowName);//正常
2. Wenn es sich um eine allgemeine Anfrage handelt (Nicht-Ajax-JSON**-Anfrage verstümmelt**, konfigurieren Sie den chinesischen Filter direkt in web.xml ) wie folgt:
<filter> <filter-name>encodingFilter</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> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern><!-- 对请求项目下所有资源进行过滤--> </filter-mapping>
Wenn springmvc nicht verwendet wird, können Sie auch diesen Satz hinzufügen, um das verstümmelte Problem der Post-Anfrage zu lösen: request.setCharacterEncoding("UTF-8");
Hinweis: tomcat8 hat hat das verstümmelte Problem der Get-Anfrage gelöst Ja, Tomcat7 muss es immer noch selbst lösen
3. Die JSON-Daten von Ajax sind verstümmelt
Manchmal sind asynchrone Anfragen erforderlich Das Projekt kann in Annotationen in der SpringMVC-Konfigurationsdatei implementiert werden. Fügen Sie einfach zwei Konverter zu den Adapter- und Mapper-Tags hinzu, um das Problem verstümmelter Zeichen in JSON-Datenanforderungen und -Antworten zu lösen (wenn die Tomcat-Codierung nicht geändert wurde). Es wird immer noch verstümmelte Zeichen geben, und alle verstümmelten Zeichen werden durch viele Faktoren verursacht.
Im Folgenden werden die beiden JSON-Konverter in spinngmvc konfiguriert, um das Problem der verstümmelten JSON-Datenanforderungs- und -antwortzeichen zu lösen.
<!-- 注解的适配器和映射器 --> <mvc:annotation-driven> <mvc:message-converters> <!--@ResponseBody 中文响应乱码 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value> text/plain;charset=UTF-8 </value> <value> text/html;charset=UTF-8 </value> <value> application/json;charset=UTF-8 </value> <value> application/x-www-form-urlencoded;charset=UTF-8 </value> </list> </property> </bean> <!-- JSON中文请求乱码及解决 HttpMediaTypeNotAcceptableException: Could not find acceptable representation 异常信息--> <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value> application/json;charset=UTF-8 </value> <value> application/x-www-form-urlencoded;charset=UTF-8 </value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonDas Problem der JSON-Übertragung von Daten ist in Java verstümmelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!