Hallo,
mein selbstgeschriebenes Programm (Delphi) verwendet ausschließlich den Zeichensatz von ANSI/ASCII zur Dateneingabe.
In einer Funktion wandle ich den jeweiligen Buchstaben in den entsprechenden Unicode-Wert um:
Vorgehen:
Im umzuwandelnden String steht ein beliebiges Wort (z. B. "Haus"); jetzt wird jeder einzelne Buchstabe in den Unicode-Zeichenwert umgewandelt:
Haus ==> \u0048\u0061\u0075\u0073
1. vom Buchstaben den ASCII/ANSI Werte ausgeben lassen (z. B. beim Eurozeichen 128)
2. diesen ANSI/ASCII WErt in einen Hex-Wert konvertieren (z. B. beim Eurozeichen \u0080)
Das geht alles einwandfrei. Nur falls das Euro-Zeichen umgewandelt werden soll (es steht meines Wissens nach auf ANSI/ASCII 128 kommt als Wert \u0080 - und dieser Wert ist allerdings im Unicode-System ein Leerzeichen (zumindest kein Euro-Zeichen). Die Umwandlung von dez in hex Wert wäre an für sich ja ok, aber das Endergebnis stimmt leider nicht mehr...
Jetzt die Fragen:
1. Es scheint Zeichen zu geben, die im ASCII/ANSI Zeichensatz auf einem bestimmten dezimalen Wert zu finden sind, wird dieser aber in einen Hex-Wert umgewandelt stimmt das nicht mehr mit dem UNICODE-System überein.
Wie finde ich heraus welche Zeichen (außer dem Euro) noch betroffen sind, ohne alle ANSI/ASCII Werte manuell durchzuprobieren?
2. Was könnte ich machen, damit beim Konvertieren von dezimal in hex das Problem ausgeschlossen wird ? Ich also beim Eurozeichen hex 20AC bekomme, statt 0080...
Vielleicht kennt jemand auch eine Webseite wo ich mehr darüber nachlesen kann. Unicode.org kenne ich bereits :-)
Danke schonmal.
michael