# Unicode-Zeichen erstellen/ Kodierung



## SlaterB (18. Jul 2006)

ich sehe bei Unicode immer wenig durch..,

ist es möglich, aus dem gegebenen String "& # 8364;" (z.B. von einem Opera-Browser geschickt)
für die extrahierte Zahl 8364 das zugehörige Unicode-Zeichen '\u20ac' = Euro-Zeichen zu erstellen?

8364 = 20ac in Hex, 
einen String "\\u20ac" könnte ich ja auch noch manuell berechnen, aber wer wandelt das dann in ein einzelnens Unicode-Zeichen um?


----------



## SlaterB (18. Jul 2006)

hmm, die Operation 
int unicode = 8364;
char c = (char) unicode;
scheint doch schon das richtige zu sein,

dann liegt mein Problem wohl woanders:
wenn ein Internet-Explorer das Euro-Zeichen sendet, kommt ? im Java-Programm an (Struts, J2EE),
bei string.getBytes() erscheint eine 63

für Opera dagegen "& # 8364;" , dass nun in \u20ac umgewandelt wird, byte = -128,

liegt wohl an irgendeiner globaleren Kodierung?..


----------



## foobar (18. Jul 2006)

Mach doch sowas:

```
char c = Character.forDigit(8364,10);
```

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Character.html#forDigit(int,%20int)


----------



## SlaterB (18. Jul 2006)

hilft wohl nicht weiter?

-------

noch mal als Übersicht:

€ in Opera

text   : & # 8364 ;
ersetzt: €
chars  : €

bytes           :  -128 
bytes UTF-8     :  -30 -126 -84 
bytes US-ASCII  :   63 
bytes ISO-8859-1:   63 
bytes UTF-16    :   -2  -1  32 -84 

in der MySQl-Datenbank und Anzeige auf der Web-Seite: ?

€ im IE

text   : ?
ersetzt: ?
chars  : ?

bytes           :   63 
bytes UTF-8     :  -62 -128 
bytes US-ASCII  :   63 
bytes ISO-8859-1:  -128 
bytes UTF-16    :   -2  -1   0 -128 


in der MySQl-Datenbank und Anzeige auf der Web-Seite: korrektes €


wie ich ja in den anderen Threads in der Suche so oft höre, kann man den Zeichensatz eines Strings nicht ändern,

wie kann ich aber einen Java-String mit einem Euro-Zeichen erzeugen, der das gleiche Verhalten hat, wie ein Euro-Zeichen von einem IE-Browser gesendet?

verwirrend..


----------



## SlaterB (18. Jul 2006)

falls es jemanden interessiert:
für den Moment scheint ein einfaches
char euro = (char) 128;
genau das richtige zu sein 

hoofentlich das einzige Problemzeichen..


----------

