Hallo zusammen,
Java nennt sich ja "unicode ready". Das ist jedoch nur relativ easy solange ich innerhalb der JVM bleibe.
An den Schnittstellen zur Shell (main/exec) wird's schwieriger.
Leider hab ich nach langem Google-Recherchieren noch keine aussagekräftigen bzw. zuverlässigen Ergebnisse bekommen.
Wär toll wenn Ihr mit bei diesen Fragen weiterhelfen könnt:
Eine Java Applikation muss internationale Zeichen (nicht nur ISO-8859) handhaben können:
1.) in command line parametern für die Java Applikation
- ist main() überhaupt 16 bit (vgl. C++ wmain)?
Mit shell meine ich cmd.exe (ab Win XP Prof.).
Die Codepage der Windows cmd Konsole stelle ich auf Unicode um:
chcp 65001
Beim Aufruf
java -Dfile.encoding=UTF-8 UnicodeTests äöü߀éáç©®
kann ich diese Zeichen auch wieder in der cmd ausgeben und sehe sie korrekt.
Was nun unklar ist: ich hab hier nur ISO8859-1-Zeichen bzw. Windows-1252.
Was ist z. B. bei einem Chinesischen Windows, wo man nicht alle Zeichen in einem Byte unterbringen kann?
Kann die cmd shell überhaupt mehr als ein byte pro Zeichen an die Java-main übergeben???
Ich nehme an, durch codepage-Umschaltung (chcp) kann nur auf ein anderes 1-Byte-Fenster innerhalb des Unicode-Umfangs umschalten (???)
Welchen workaround gäbe es?
2.) internationale Zeichen in Parametern für zu startende externe Programme (exex / ProcessBuilder):
Was muss ich beachten wenn ich aus Java ein externes Programm starte und diesem Unicode-Parameters mitgeben will?
Schließlich: wie muss ich Files mit Unicode-Zeichen (oder anderen Encodings) im Filename handhaben?
Mit welchem encoding arbeitet File(String pathname), File.list() ?
Vielen Dank für Eure Beiträge!
Gruß, Robert
Java nennt sich ja "unicode ready". Das ist jedoch nur relativ easy solange ich innerhalb der JVM bleibe.
An den Schnittstellen zur Shell (main/exec) wird's schwieriger.
Leider hab ich nach langem Google-Recherchieren noch keine aussagekräftigen bzw. zuverlässigen Ergebnisse bekommen.
Wär toll wenn Ihr mit bei diesen Fragen weiterhelfen könnt:
Eine Java Applikation muss internationale Zeichen (nicht nur ISO-8859) handhaben können:
1.) in command line parametern für die Java Applikation
- ist main() überhaupt 16 bit (vgl. C++ wmain)?
Mit shell meine ich cmd.exe (ab Win XP Prof.).
Die Codepage der Windows cmd Konsole stelle ich auf Unicode um:
chcp 65001
Beim Aufruf
java -Dfile.encoding=UTF-8 UnicodeTests äöü߀éáç©®
kann ich diese Zeichen auch wieder in der cmd ausgeben und sehe sie korrekt.
Was nun unklar ist: ich hab hier nur ISO8859-1-Zeichen bzw. Windows-1252.
Was ist z. B. bei einem Chinesischen Windows, wo man nicht alle Zeichen in einem Byte unterbringen kann?
Kann die cmd shell überhaupt mehr als ein byte pro Zeichen an die Java-main übergeben???
Ich nehme an, durch codepage-Umschaltung (chcp) kann nur auf ein anderes 1-Byte-Fenster innerhalb des Unicode-Umfangs umschalten (???)
Welchen workaround gäbe es?
2.) internationale Zeichen in Parametern für zu startende externe Programme (exex / ProcessBuilder):
Was muss ich beachten wenn ich aus Java ein externes Programm starte und diesem Unicode-Parameters mitgeben will?
Schließlich: wie muss ich Files mit Unicode-Zeichen (oder anderen Encodings) im Filename handhaben?
Mit welchem encoding arbeitet File(String pathname), File.list() ?
Vielen Dank für Eure Beiträge!
Gruß, Robert