Heim  >  Artikel  >  Computer-Tutorials  >  Wie konvertiere ich einen String in die GB2312-Codierung in Java?

Wie konvertiere ich einen String in die GB2312-Codierung in Java?

王林
王林nach vorne
2024-01-20 08:42:13562Durchsuche

Wie konvertiere ich einen String in die GB2312-Codierung in Java?

So konvertieren Sie einen String in die GB2312-Originalkodierung in Java

@Test

public void test333(){

String a="青白";

versuchen {

byte[] b=a.getBytes("GB2312");

System.out.println(bytesToHexFun1(b));

} Catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

//Byte-Array in hexadezimale Zeichenfolge umwandeln

public static String bytesToHexFun1(byte[] bytes) {

char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5',

'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', ​​​​'f'};

// Ein Byte besteht aus 8 Bits und kann durch zwei hexadezimale Ziffern identifiziert werden

char[] buf = new char[bytes.length * 2];

int a = 0;

int-Index = 0;

for(byte b : bytes) { // Konvertieren mit Division und Rest

if(b

a = 256 + b;

} sonst {

a = b;

}

buf[index++] = HEX_CHAR[a/16];

buf[index++] = HEX_CHAR[a % 16];

}

neuen String(buf) zurückgeben;

}

Die zentrale Idee besteht darin, es zuerst in ein GB2312-Byte-Array und dann in ein Hexadezimalformat umzuwandeln.

Java-String-Byte-Konvertierungsproblem

1. Chinesisch auf der Webseite ausgeben.

Die von JAVA bei der Netzwerkübertragung verwendete Kodierung ist „ISO-8859-1“, daher muss sie bei der Ausgabe konvertiert werden, wie zum Beispiel:

String str="中文\;

str=new String(str.getBytes("GB2312"),"8859_1");

Aber wenn die beim Kompilieren des Programms verwendete Codierung „GB2312“ ist und das Programm auf einer chinesischen Plattform ausgeführt wird, tritt dieses Problem nicht auf, also achten Sie unbedingt darauf.

2. Chinesisch aus Parametern lesen

Das ist genau das Gegenteil der Ausgabe auf der Webseite:

str=new String(str.getBytes("8859_1"),"GB2312");

3. Chinesische Ausgaben in DB verwalten

Eine einfachere Methode ist: Stellen Sie in der „Systemsteuerung“ die „Region“ auf „Englisch (USA)“ ein. Sollten dennoch verstümmelte Zeichen erscheinen, können Sie zusätzlich folgende Einstellungen vornehmen:

Bei Chinesisch: str=new String(str.getBytes("GB2312"));

Chinesisch in die Datenbank eingeben: str=new String(str.getBytes("ISO-8859-1"));

4. Chinesische Lösung in JSP:

Stellen Sie in der „Systemsteuerung“ die „Region“ auf „Englisch (USA)“.

Zur JSP-Seite hinzufügen:

Wenn es immer noch nicht normal angezeigt werden kann, muss die folgende Konvertierung durchgeführt werden:

Zum Beispiel: name=new String(name.getBytes("ISO-8859-1"),"GBK");

Es wird kein chinesisches Problem geben.

Java-String-Typkonvertierung

Ich habe eines online gefunden, probieren Sie es aus:

/**

* Unicode zum String

* @param str

* @return

*/

public static String unicode2Str(String str) {

StringBuffer sb = new StringBuffer();

String[] arr = str.split("\\u");

int len ​​​​= arr.length;

sb.append(arr[0]);

for(int i=1; i

String tmp = arr[i];

char c = (char)Integer.parseInt(tmp.substring(0, 4), 16);

sb.append(c);

sb.append(tmp.substring(4));

}

return sb.toString();

}

/**

* String in Unicode konvertieren

* @param str

* @return

*/

public static String str2Unicode(String str) {

StringBuffer sb = new StringBuffer();

char[] charArr = str.toCharArray();

for (char ch : charArr) {

if (ch > 128) {

sb.append("\u" + Integer.toHexString(ch));

} sonst {

sb.append(ch);

}

}

return sb.toString();

}

public static void main(String[] args) {

System.out.println(str2Unicode("222dstest1testaa"));

String str = "u6d4b1u8bd5aa";

System.out.println(unicode2Str(str));

}

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String in die GB2312-Codierung in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen