Heim  >  Artikel  >  Java  >  Das Problem der JSON-Übertragung von Daten ist in Java verstümmelt

Das Problem der JSON-Übertragung von Daten ist in Java verstümmelt

尚
Original
2019-12-30 09:24:073537Durchsuche

Das Problem der JSON-Übertragung von Daten ist in Java verstümmelt

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn