Heim > Java > JavaBase > Hauptteil

Lösung für verstümmelte Zeichen in Java

藏色散人
Freigeben: 2020-04-11 09:20:47
Original
2947 Leute haben es durchsucht

Lösung für verstümmelte Zeichen in Java

Lösung für verstümmelte Zeichen in Java

Da die Standardcodierungsmethode für Java UNICODE ist, verwenden Sie Chinese It ist auch anfällig für Probleme:

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

1. UTF8 löst das JSP-Chinesisch-verstümmelte Problem

Empfohlenes Tutorial: „Java-Lernen

Im Allgemeinen fügen Sie am Anfang jeder Seite Folgendes hinzu:

<%@ 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"); %>
Nach dem Login kopieren

◆charset=UTF-8 wird verwendet, um die Codierungsmethode anzugeben, die JSP als „UTF-8“ an den Client ausgibt

◆pageEncoding="UTF-8", damit die JSP-Engine JSP-Seiten mit chinesischen Zeichen korrekt dekodieren kann, was unter LINUX sehr effektiv ist

◆request.setCharacterEncoding("UTF-8 "); Die Anfrage ist auf Chinesisch kodiert.

Manchmal löst dies das Problem immer noch nicht, und Sie müssen wie folgt damit umgehen:

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

2. Ändern Sie einfach den Prozentsatz. Die Datei TOMCAT-Installationsverzeichnis %/ webappsservlets-examplesWEB -INFclassesfiltersSetCharacterEncodingFilter.class wird in Ihr Webapp-Verzeichnis/Filter kopiert. Wenn kein Filterverzeichnis vorhanden ist, erstellen Sie eines.

2) Fügen Sie die folgenden Zeilen zu Ihrer web.xml hinzu:

<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>
Nach dem Login kopieren

3) Vervollständigen Sie

2. Holen Sie sich die Methodenlösung

1) Öffnen Sie den Server .xml-Datei von Tomcat, suchen Sie den Block und fügen Sie die folgende Zeile hinzu:

  URIEncoding=”GBK”
Nach dem Login kopieren

Das Ganze sollte wie folgt lauten:

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

2) Starten Sie Tomcat neu, alles ist in Ordnung.

3. xmlHttpRequest Chinesisches Problem

GBK-Kodierung für Seiten-JSP

Code:

<%@ page contentType="text/html; charset=GBK"%>
Nach dem Login kopieren

Javascript-Teil

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#
Nach dem Login kopieren

Die im Hintergrund erhaltene ReportId ist verstümmelt. Der Hauptgrund ist, dass ich nicht weiß, welche Codierung xmlHttp(urlmsg); Ich habe es später mit Java übertragen und mehrere Methoden ohne Erfolg ausprobiert. Darunter sind:

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;   
        }   
    }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonLösung für verstümmelte Zeichen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage