Heim > Java > JavaBase > Hauptteil

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

Freigeben: 2019-12-30 09:24:07
Original
3550 Leute haben es durchsucht

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);//正常
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!