Konvertierung des Zeichensatzes.

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ,


ich würde gern eine Zeichensatz Konvertierung vornehmen. Und zwar von Mac Roman nach ISO und dann auch wieder
von ISo nach Mac Roman. Gibt es vlt. schon von Java her Funktionen, die dies anbieten.?

Wenn nicht, Wie muss ich soetwas anstellen? Wie konvertiere ich einen ISO String nach Mac Roman ?

Über Tipps wäre ich dankbar..


Gruß
 

Ark

Top Contributor
Wenn du die genauen Namen der Zeichensätze kennen solltest, ist die Sache einfach: einen Reader mit dem entsprechenden Quellzeichensatz zum Lesen aufbauen und dann (nach der Verarbeitung) die Daten an einen Writer mit dem entsprechenden Zielzeichensatz schicken.

Mit java.nio.charset.Charset.availableCharsets() kommst du an alle auf deiner Java-Plattform verfügbaren Zeichensätze.

Ark
 
G

Guest

Gast
Ja, das war eine große Hilfe.
Allerdings hab ich einen String, den ich auch wieder in einen String konvertieren möchte.

Ich hab das jetzt so gemacht:

Code:
 private static String convertToMac(String text) throws UnsupportedEncodingException{
		 
		 byte[] code = null;
			 
		 code = text.getBytes(java.nio.charset.Charset.defaultCharset());	 
		 
		 String translation = new String( code, "x-MacRoman");
		 
		 return translation;
 
	 }

Leider brauche ich für die Rückkodierung eine 2. Methode. Vlt. geht es auch noch besser ?

Was haltet Ihr davon ?
 

Ark

Top Contributor
Strings verwenden intern Unicode (UCS-2BE, glaube ich) und bilden ihre Zeichen auf chars ab. Dabei spielt so etwas wie eine Zeichensatzkodierung aber gar keine Rolle. Konvertierungen zwischen Zeichensätzen sind nur dann nötig, wenn es darum geht, Unicode in Bytes(!) darzustellen (was z.B. nötig ist, um Daten auf die Platte zu schreiben).

So lange sich das Ganze nur innerhalb von Java abspielt, bist du mit char (bzw. Objekten, die char verwenden, z.B. eben String) wahrscheinlich gut bedient. Erst wenn du mt der Welt außerhalb von Java in Kontakt kommst, musst du dir über Zeichensätze den Kopf zerbrechen. Deswegen heißt das Paket ja auch "java.nio.charset" und nicht "java.lang.charset". ;)

Ark
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben