ホームページ >Java >&#&チュートリアル >Javaが中国語のjsonリクエストを返し、それが疑問符に変わってしまう場合の問題を解決する方法

Javaが中国語のjsonリクエストを返し、それが疑問符に変わってしまう場合の問題を解決する方法

WBOY
WBOY転載
2023-04-15 09:25:071942ブラウズ

java は json を返し、漢字を疑問符に変更するよう要求します

個人プロジェクトに取り組んでいたとき、layui のデータ フォームを使用してデータを取得すると、漢字が変更される問題が発生することがわかりました。疑問符は発生しません。

後でプロジェクトを変更しましたが、返された JSON データがページ上で中国語に変わっていることに気付きました。 ? ?疑問符。

そこで、問題の原因の調査を開始しました。まず、JSP ページ ヘッダーが UTF-8 エンコーディングを使用していることを確認します:

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">

これはページの問題ではないため、バックグラウンドの問題です。以前のバックグラウンド コードは :

    /**      * 获取json列表      */   
      @ResponseBody  
      @RequestMapping("/getJsonAF02")  
      public void getManyCategory(Page page, HttpServletRequest request,HttpServletResponse response) throws  Exception{       
           logBefore(logger, "列表AF02");    
                // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}        
               // //校验权限       
                 PageData pd = this.getPageData();     
                 JSONObject jsonObject = new JSONObject();  
                 PrintWriter out = response.getWriter();
                 try { 
                         page.setPd(pd);  
                         page.setCurrentPage(Integer.parseInt(pd.getString("page"))); 
                         pd.put("OPERATION_NUM", "10001"); 
                         ListvarList = af02Service.listForSCJ(page);
                         // 列出AF02列表
                         //前台通过key值获得对应的value值 
                         jsonObject.put("code", 0);  
                         jsonObject.put("msg", "测试"); 
                         jsonObject.put("count",page.getTotalResult());
                         jsonObject.put("data", varList);
                     } catch (Exception e) { 
                      logger.error(e.toString(), e);
                     }  
                      String result = jsonObject.toString(); 
                       out.write(result);
                       out.close(); 
                     }

です。いくつかのトラブルシューティングの後、このコードに response.setContentType("text/html;charset=utf-8"); を追加しても機能しないことがわかりました。がページに渡されます。中国語の文字化けが表示されます

後のプロジェクトの元の springmvc 構成ファイルには関連する構成がありませんでした。以前の個人プロジェクトにはこの構成がありました:

  /**      * 获取json列表      */ 
      @ResponseBody  
      @RequestMapping("/getJsonAF02")
      public void getManyCategory(Page page, HttpServletRequest request,HttpServletResponse response) throws  Exception{  
             logBefore(logger, "列表AF02");  
             // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} 
             //校验权限  
               PageData pd = this.getPageData();
               response.setContentType("text/html;charset=utf-8");// 加上这个处理问号 
               JSONObject jsonObject = new JSONObject();
               PrintWriter out = response.getWriter();
               try { 
                   page.setPd(pd); 
                   page.setCurrentPage(Integer.parseInt(pd.getString("page")));
                   pd.put("OPERATION_NUM", "10001");
                   ListvarList = af02Service.listForSCJ(page); 
                   // 列出AF02列表 
                   //前台通过key值获得对应的value值
                   jsonObject.put("code", 0);
                   jsonObject.put("msg", "测试");
                   jsonObject.put("count",page.getTotalResult());
                   jsonObject.put("data", varList); 
               } catch (Exception e) { 
                    logger.error(e.toString(), e); 
                    String result = jsonObject.toString(); 
                    out.write(result);
                    out.close();  
                 }

さて、

json return Chinese は疑問符だらけであることを共有します

RequestMapping に

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">

Javaが中国語のjsonリクエストを返し、それが疑問符に変わってしまう場合の問題を解決する方法 を追加します。 , 「java return 中国語で json リクエストが疑問符になる問題を解決するにはどうすればよいですか?」は皆さんよくご存知だと思いますが、理解が深まったので、実際に実行してみましょう。これはこのサイトです。その他の関連コンテンツについては、関連するチャネルにアクセスして問い合わせることができます。フォローして学習を続けてください。

以上がJavaが中国語のjsonリクエストを返し、それが疑問符に変わってしまう場合の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。