Maison > Java > javaDidacticiel > Comment résoudre le problème lorsque Java renvoie une requête json en chinois et la transforme en point d'interrogation

Comment résoudre le problème lorsque Java renvoie une requête json en chinois et la transforme en point d'interrogation

WBOY
Libérer: 2023-04-15 10:15:15
avant
1948 Les gens l'ont consulté

java renvoie une requête json et le caractère chinois est transformé en point d'interrogation

Il s'avère que dans un projet personnel, lors de l'utilisation du formulaire de données de layui pour obtenir des données, le problème de la transformation du caractère chinois en point d'interrogation ne se produit pas

Plus tard, j'ai modifié le projet et j'ai constaté que les données json renvoyées étaient devenues chinoises sur la page Terminé ? ? ? point d'interrogation.

Nous avons donc commencé à rechercher la cause du problème. Tout d'abord, assurez-vous que l'en-tête de la page jsp utilise le codage UTF-8 :

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Copier après la connexion

Puisqu'il ne s'agit pas d'un problème de page, il doit s'agir d'un problème d'arrière-plan. est :

    /**      * 获取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(); 
                     }
Copier après la connexion

Après vérification, j'ai découvert qu'après avoir ajouté réponse.setContentType("text/html;charset=utf-8"); à ce code :

  /**      * 获取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();  
                 }
Copier après la connexion

Lorsqu'il est transmis à la page, les caractères chinois tronqués ne seront pas apparaît

Le fichier de configuration springmvc original du projet ultérieur Il ne contient aucune configuration pertinente. Il y a cette configuration dans le projet personnel précédent :

<%@ page="" language="java" contenttype="text/html; charset=UTF-8" pageencoding="UTF-8">
Copier après la connexion

Eh bien, j'ai marché sur un piège et je l'ai partagé

json est revenu en chinois. plein de points d'interrogation

Ajoutez

produces = "text/plain;charset=UTF-8"
Copier après la connexion

Comment résoudre le problème lorsque Java renvoie une requête json en chinois et la transforme en point dinterrogation

à RequestMapping Par conséquent, je crois que tout le monde a une compréhension plus profonde de "Comment résoudre le problème de "java renvoie la demande json chinoise en point d'interrogation", vous pourriez aussi bien le faire en pratique! Il s'agit de ce site. Pour plus de contenu connexe, vous pouvez accéder aux canaux de demande pertinents. Suivez-nous et continuez à apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal