Char2Unicode

czerny

Neues Mitglied
Hallo,

ich möchte eine Methode schreiben, die etwa so definiert ist

Java:
char Char2Unicode(int pos, String charset)

d.h. ein Aufruf von z.B.

Java:
char c = Char2Unicode(130, "IBM850")

soll mir das Unicode-Zeichen liefern, das im IBM850 Zeichensatz an Position 130 sitzt. Ein Aufruf von

Java:
char c = Char2Unicode(130, "ISO-8859-1")

soll mir das Unicode-Zeichen liefern, das im ISO-8859-1 Zeichensatz an Position 130 sitzt.

Welche Klasse könnte mir dabei helfen?

Was ist übrigens der Unterschied zwischen dem Zeichensatz IBM850 und der Codepage CP850?

czerny
 

Wortraum

Bekanntes Mitglied
Es gibt mehrere Wege und wahrscheinlich darunter einen, der besser ist als die beiden folgenden. :D

Java:
byte codePoint = (byte) 194;
String charsetName = "ISO-8859-6";
String s = new String(new byte[] { codePoint }, charsetName);
System.out.println(s);

ByteBuffer bb = ByteBuffer.wrap(new byte[] { codePoint });
Charset charset = Charset.forName(charsetName);
s = charset.decode(bb).toString();
System.out.println(s);
System.out.println("Unicode code point: " + s.codePointAt(0));
System.out.println("Unicode code point: 0x" + Integer.toHexString(s.codePointAt(0)));
Normalerweise sollte Dir das reichen, aber es könnte auch häßlich werden, nämlich dann, wenn die Codepoints größer als 255 sind oder man in UTF-16 mehr als ein Zeichen zur Darstellung benötigt (die vorletzte Zeile wäre dann beispielsweise fehlerhaft).

> Was ist übrigens der Unterschied zwischen dem
> Zeichensatz IBM850 und der Codepage CP850?
Vielleicht das, was hier unter Anmerkungen steht?
Zeichentabelle CP850 (DOS Latin 1)
 
Zuletzt bearbeitet:

czerny

Neues Mitglied
Vielen Dank!

Das bringt mich schon mal viel weiter.

Der Unterschied zwischen cp850 und IBM850 in den Positionen (1A, 1C und 7F) wird offensichtlich von Java nicht gemacht.

Auch ist mir noch nicht klar, ob es grundsätzlich möglich ist Codepage-Bezeichnungen an Stelle der Charset Namen zu verwenden. Bei cp850 scheint es zu gehen. Ich kann dazu keine gute Dokumentation finden.
 

Neue Themen


Oben