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

Solution aux caractères tronqués en Java

藏色散人
Libérer: 2020-04-11 09:20:47
original
2963 Les gens l'ont consulté

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”);
Copier après la connexion

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"); %>
Copier après la connexion

◆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);
Copier après la connexion

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>
Copier après la connexion

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”
Copier après la connexion

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"   
  />
Copier après la connexion

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"%>
Copier après la connexion

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#
Copier après la connexion

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;   
        }   
    }
Copier après la connexion
.

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:php.cn
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