ホームページ  >  記事  >  Java  >  Javaでjson送信データが文字化けする問題

Javaでjson送信データが文字化けする問題

尚
オリジナル
2019-12-30 09:24:073537ブラウズ

Javaでjson送信データが文字化けする問題

Java での json 送信データの文字化け問題の解決策: (推奨: java ビデオ チュートリアル)

1. ISO-8859 を実行します。パラメーターは最初に -1 でエンコードされ、次に utf-8

    @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 でデコードされます。一般的なリクエスト (非 Ajax json** リクエストが文字化けしている**) の場合は、web.xml で中国語フィルターを直接設定します。 ) 次のように:

<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>

springmvc が使用されていない場合、投稿リクエストの文字化けの問題を解決するために次の文を追加することもできます: request.setCharacterEncoding("UTF-8");
注: tomcat8 にはget リクエストの文字化け問題を解決しました。はい、tomcat7 はまだ自力で解決する必要があります。

3. ajax の json データが文字化けしています

非同期リクエストが必要な場合がありますプロジェクト内で、 springmvc 設定ファイルのアノテーションで実装できます。 アダプター タグとマッパー タグに 2 つのコンバーターを追加するだけで、JSON データのリクエストとレスポンスの文字化けの問題を解決できます (Tomcat エンコーディングが変更されていない場合) 、それでも文字化けは発生します。すべての文字化けはさまざまな要因によって引き起こされます)。

以下は、json データのリクエストとレスポンスの文字化けの問題を解決するために、spinngmvc で 2 つの JSON コンバーターを設定する方法です。

<!-- 注解的适配器和映射器 -->
    <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>

Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。

以上がJavaでjson送信データが文字化けする問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。