" au début de chaque page ; puis copiez le répertoire d'installation de "TOMCAT" dans "webapp/filters". C'est ça."/> " au début de chaque page ; puis copiez le répertoire d'installation de "TOMCAT" dans "webapp/filters". C'est ça.">

Maison >Java >JavaBase >Solution aux caractères tronqués en Java

Solution aux caractères tronqués en Java

藏色散人
藏色散人original
2020-04-11 09:20:473023parcourir

Solution aux caractères tronqués en Java

Solution aux caractères tronqués en Java

Pour Java, puisque la méthode d'encodage par défaut est UNICODE, utilisez le chinois est également sujet à des problèmes. Les solutions courantes sont :

String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

1 UTF8 résout le problème de confusion du chinois JSP

Tutoriel recommandé : "apprentissage Java"

De manière générale, au début de chaque page, ajoutez :

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>

◆charset=UTF-8 est utilisé pour spécifier la méthode d'encodage que JSP envoie au client comme "UTF-8" ;

◆pageEncoding="UTF-8", afin de permettre au moteur JSP de décoder correctement les pages JSP contenant des caractères chinois, ce qui est très efficace sous LINUX

◆request.setCharacterEncoding("UTF-8; "); La demande est codée en chinois.

Parfois, cela ne résout toujours pas le problème, et vous devez le résoudre comme ceci :

String msg = request.getParameter("message");  String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");  out.println(st);

2 Tomcat 5.5 Caractères chinois tronqués

Changez simplement le %. Répertoire d'installation TOMCAT%/ webappsservlets-examplesWEB -INFclassesfiltersSetCharacterEncodingFilter.class Le fichier est copié dans votre répertoire/filtres d'application Web. S'il n'y a pas de répertoire de filtres, créez-en un.

2) Ajoutez les lignes suivantes à votre web.xml :

<filter>   
<filter-name>Set   Character   Encoding</filter-name>   
<filter-class>filters.SetCharacterEncodingFilter</filter-class>   
<init-param>   
<param-name>encoding</param-name>   
<param-value>GBK</param-value>   
</init-param>   
</filter>   
<filter-mapping>   
<filter-name>Set   Character   Encoding</filter-name>   
<url-pattern>/*</url-pattern>   
</filter-mapping>

3) Complétez

2 Obtenez la solution de la méthode

1 ) Ouvrez le serveur. .xml de Tomcat, recherchez le bloc, et ajoutez la ligne suivante :

  URIEncoding=”GBK”

Le complet doit être le suivant :

<connector     
  port="80"   maxThreads="150"   minSpareThreads="25"   maxSpareThreads="75"   
  enableLookups="false"   redirectPort="8443"   acceptCount="100"   
  debug="0"   connectionTimeout="20000"     
  disableUploadTimeout="true"     
  URIEncoding="GBK"   
  />

2) Redémarrez Tomcat, tout va bien.

3. xmlHttpRequest Problème chinois

Encodage GBK pour la page jsp

code :

<%@ page contentType="text/html; charset=GBK"%>

partie javascript

code :

function addFracasReport() {   
    var url="controler?actionId=0_06_03_01&actionFlag=0010";   
    var urlmsg="&reportId="+fracasReport1.textReportId.value;  //故障报告表编号   
           
    var xmlHttp=Common.createXMLHttpRequest();   
    xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, 
       eval("turnAnalyPage"));   
    xmlHttp.open("POST",url,true);   
    xmlHttp.setRequestHeader( " Content-Type " , " 
       application/x-www-form-urlencoded);   
    xmlHttp.send(urlmsg);          
}
#p#

Le reportId obtenu en arrière-plan java est tronqué. Je ne sais pas comment le transférer. La raison principale est que je ne sais pas quel sera l'encodage xmlHttp.send(urlmsg); J'ai utilisé Java pour le transférer plus tard et j'ai essayé plusieurs méthodes sans succès Parmi elles :

Code :

public static String UTF_8ToGBK(String str) {   
        try {   
            return new String(str.getBytes("UTF-8"), "GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
       
    public static String UTF8ToGBK(String str) {   
        try {   
            return new String(str.getBytes("UTF-16BE"), "GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
       
    public static String GBK(String str) {   
        try {   
            return new String(str.getBytes("GBK"),"GBK");   
        } catch (Exception ex) {   
            return null;   
        }   
    }   
         public static String getStr(String str) {   
        try {   
            String temp_p = str;   
            String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");   
            temp = sqlStrchop(temp);   
            return temp;   
        } catch (Exception e) {   
            return null;   
        }   
    }
.

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!

Déclaration:
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