# Java und kyrillisch



## z-coupe (21. Februar 2007)

Ich bin hier am verzweifeln. Ich muss zu Übersetzungszwecken eine XML- Datei erzeugen die kyrillische Zeichen enthält, aber es klappt nicht wie ich will. Mit lateinischen Zeichen geht esohne Probleme. Irgendwie will mein Java nicht russisch mit mir reden. Ich habe mir zu Testzwecken eine simple Klasse geschrieben:

public class TestSprache
       {
        public static void main(String args[])
        {
          System.out.println("???"); }        
      }
Solange im Output lateinische Zeichen stehen geht es ohne weiteres, aber nicht mit kyrillischen. Der spuckt mir irgenwelche Sonderzeichen aus, die in etwa so aussehen: ¹ÔÓ´ÕÛ¾

Woran kann das liegen? Habe schon sämtliche Spracheinstellungen unter Windows XP auf russisch gesetzt.

danke schon mal


----------



## zerix (21. Februar 2007)

Hallo, 
ich weiß zwar nicht wie es geht, aber ich hoffe dieser link kann dir helfen

http://www.wer-weiss-was.de/theme35/article2022222.html

MFG zerix


----------



## Billie (21. Februar 2007)

Ich glaube das hängt eher mit der Konsole zusammen, die kann nur ASCI - wenn ich mich nicht irre.


----------



## z-coupe (21. Februar 2007)

zerix hat gesagt.:


> Hallo,
> ich weiß zwar nicht wie es geht, aber ich hoffe dieser link kann dir helfen
> 
> http://www.wer-weiss-was.de/theme35/article2022222.html
> ...


Glaube nicht, dass es daran liegt. Habe ja keine Codierung voreingestell in meiner Test- Klasse.
Die XML- Files die ich übersetzen will, sind allerdings UTF-8. Probiere es mal morgen aus.



Billie hat gesagt.:


> Ich glaube das hängt eher mit der Konsole zusammen, die kann nur ASCI - wenn ich mich nicht irre.



Wenn ich meine Tastatur auf russisch umstelle, kann ich im CMD- fenster auch kyrillische Zeichen eingeben.

Hat noch jemand einen Tipp?


----------



## z-coupe (22. Februar 2007)

Geht alles nicht. Hat jemand vielleicht noch eine andere Idee?


----------



## Matthias Reitinger (22. Februar 2007)

Hallo,

in welcher Codierung werden denn die Zeichen ausgegeben? Leite mal die Ausgabe deines Testprogramms in eine Datei um und hänge diese an (java TestSprache >datei.txt).

Grüße,
Matthias


----------



## z-coupe (22. Februar 2007)

Bei mir schlägt schon javac TestSprache fehl wenn ich russische Zeischen drin habe.
Im Texteditor lässt er mich die Java- Klasse nur als utf-8 speichern, sobald kyrillisch drin vorkommt.
Javac funkltioniert nur einwandfrei wenn die Klasse im ANSI- Format abgespeichert wurde.


----------



## Matthias Reitinger (22. Februar 2007)

z-coupe hat gesagt.:


> Bei mir schlägt schon javac TestSprache fehl wenn ich russische Zeischen drin habe.


Speicher die Datei mal als UTF-8 und rufe javac mit dem zusätzlichen Parameter -encoding UTF-8 auf.

Grüße,
Matthias


----------



## z-coupe (22. Februar 2007)

Bekomme die Fehlermeldung:
Illegal character: \65279


----------



## Matthias Reitinger (22. Februar 2007)

Hallo,

das ist interessant. Ist die Datei denn auch wirklich als UTF-8 abgespeichert worden? Bei mir funktioniert das Kompilieren nämlich tadellos. Kannst du die Quelldatei bitte mal anhängen?

Grüße,
Matthias


----------



## z-coupe (22. Februar 2007)

Schon passiert.
Habe die als txt gespeichert, da ich hier keine .java Dateien hochladen kann


----------



## Matthias Reitinger (22. Februar 2007)

Hallo,

dein Editor hat die Datei mit einem BOM (Byte Order Mark) versehen, mit dem der Java-Compiler anscheinend nichts anzufangen weiß. Daher musst du entweder deinem Editor abgewöhnen, diese Markierung zu setzen, oder du entfernst sie, bevor du die Datei kompilierst.

Grüße,
Matthias


----------



## z-coupe (22. Februar 2007)

Langsam kommen wir der Sache näher. 
Ich habe den Code mit Notepad geschrieben. Es ist mir nicht bekannt, dass man da einstellen kann, dass diese Markierung gesetzt werden soll.
Gibt es vielleicht eine Windows- Einstellung die das tut, bzw. wie kann ich diese Markierung entfernen?


----------



## Matthias Reitinger (22. Februar 2007)

Hallo,

soweit ich weiß, gibt es da keine entsprechende Einstellung. Die Markierung bekommt man weg, indem man die ersten drei Zeichen der Datei z.B. mit einem Hexeditor entfernt. Alternativ kann man die Datei mit Notepad auch zunächst als UTF-8 speichern, dann erneut als ANSI öffnen und wieder als ANSI speichern. Auf Dauer wird das allerdings ziemlich mühsam – ich würde dir nicht nur deswegen zu einem anderen Editor raten.

Grüße,
Matthias


----------



## z-coupe (22. Februar 2007)

Das ist schon klar, dass Notepad nicht das Mass aller Dinge ist. Ich hatte nur die zweo Zeilen mit Notepad geschriben. Ansonsten nutze ich Eclipse für die Java- Entwicklung.
Ich muss per Java in einer Textdate einen Teil der Textes ersetzen (StringUtils.replace) und dabei liefert er Murks. Aus diesem Grunde hatte ich meine Hallo- Klasse geschriben um zu sehen was passiert.


----------

