Unicode: cmd parameter (main args); exec params; filenames

Status
Nicht offen für weitere Antworten.

jdev

Mitglied
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
 

FArt

Top Contributor
Eigentlich ist die Sache relativ einfach:
wenn das Betriebsystem (besser: die Shell) und die Java Applikation gleichzeitig mit dem gleichen Encoding bzw. mit den gleichen Ländereinstellungen arbeiten, dann gibt es keine Probleme bei den angesprochenen Berühungspunkten (Schnittstellen).

Die Einstellungen des Rechners sind irrelevant, sofern sie von Java überschrieben werden und die Schnittstellen das entsprechend berücksichtigen, z.B. beim Einlesen von Dateien, die ja unterschiedlichste Encodings mitbringen können.
 

jdev

Mitglied
Wie Du schon sagst - eigentlich. Soweit die Theorie. In der Praxis schaut's so aus: cmd arbeitet standardmäßig mit codepage 850. Ich kann nicht die VM generell auf file.encoding=cp850 stellen, sonst arbeiten System.out (und andere IO) nicht mehr mit UTF. Wie könnte ich also einen exec-call / ProcessBuilder realisieren? Müsste ich meinen UTF16-String (command parameter) JVM intern umkodieren um ihn als args-Array-Element für ProcessBuilder reinzugeben?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
J Unicode Darstellung mit 5 chars Allgemeine Java-Themen 9
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
L UTF8 to Unicode Allgemeine Java-Themen 9
mrBrown Unicode-WhiteSpaces aus String entfernen Allgemeine Java-Themen 14
S Input/Output Unicode Umwandlung Allgemeine Java-Themen 2
H Unicode ausgeben ohne Umwandlung - geht das? Allgemeine Java-Themen 3
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
J Unicode als String Allgemeine Java-Themen 6
R kopieren von Dateien und Verzeichnissen - UNICODE? Allgemeine Java-Themen 4
P JavaDoc und Backslashes: "Invalid unicode" Allgemeine Java-Themen 3
H Exponenten mit UNICODE Allgemeine Java-Themen 4
N Encoding Unicode Textfile Allgemeine Java-Themen 5
M Unicode 06 (Arabic) Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
P Unicode-Problem: Griechische Buchstaben Allgemeine Java-Themen 11
Daniel_L ASCII in UniCode umwandeln? Allgemeine Java-Themen 14
Luma Unicode Steuerzeichen von druckbaren Zeichen trennen Allgemeine Java-Themen 10
L unicode-zeichen in ein txt-File schreiben Allgemeine Java-Themen 3
L unicode Allgemeine Java-Themen 5
F Unicode zu ASCII konvertieren Allgemeine Java-Themen 5
oliver1974 Wie ResourceBundles mit Unicode Zeichen korrekt einlesen? Allgemeine Java-Themen 4
I Eignung eines Zeichensatzes zur Kodierung eines Unicode-Str. Allgemeine Java-Themen 3
D Zeilenweises auslesen aus einer Unicode CSV-Datei Allgemeine Java-Themen 7
U unicode oder was? Allgemeine Java-Themen 14
R Abwärtskompatibilität des Unicode Allgemeine Java-Themen 2
R Unicode (Kyrillisch) Allgemeine Java-Themen 15
byte Unicode Sonderzeichen Allgemeine Java-Themen 2
B Unicode für Kreuz gesucht Allgemeine Java-Themen 2
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
S Unicode-Zeichen erstellen/ Kodierung Allgemeine Java-Themen 4
G Unicode file auslesen Allgemeine Java-Themen 11
C Unicode für Promille-Zeichen Allgemeine Java-Themen 5
U Unicode char kyrillisch Allgemeine Java-Themen 10
G Unicode eines Zeichens ermitteln Allgemeine Java-Themen 5
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 2
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 1
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
JavaJüngling beliebige Collection die Comperable Elemente enthält als Parameter Allgemeine Java-Themen 37
M Datensatz auf ein bestimmten Parameter einzugrenzen Allgemeine Java-Themen 11
B JAX - RS.... Multiple parameter application/x-www-form-urlencoded.... Allgemeine Java-Themen 6
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
W Haben Konstruktoren in Java eigentlich immer mindestens einen Parameter? Allgemeine Java-Themen 4
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
F URI mit Parameter klappt nicht Allgemeine Java-Themen 1
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
temi best practice: Parameter überprüfen, wo? Allgemeine Java-Themen 9
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
MiMa If-Abfrage mit Parameter Allgemeine Java-Themen 8
I Javaaufruf aus Batch inkl. Parameter (Adminrechte) Allgemeine Java-Themen 2
P Java https proxy (-Dhttps.proxyHost) Start-Parameter funktioniert nicht? Allgemeine Java-Themen 2
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
K Java FX Zu startenden FXML-Controller per Parameter wählen Allgemeine Java-Themen 2
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
T Klassen Parameter weitergabe Allgemeine Java-Themen 1
C Überschreiben mit kontravariante Parameter Allgemeine Java-Themen 13
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
perlenfischer1984 Wann ist ein Parameter Check sinnvoll Allgemeine Java-Themen 7
Neumi5694 Vererbung Parameter muss 2 Bedingungen erfüllen Allgemeine Java-Themen 2
Sogomn Methode als Parameter? Allgemeine Java-Themen 3
T Parameter Allgemeine Java-Themen 6
R Parameter Adapter - Design Allgemeine Java-Themen 1
I Methode verallgemeinern (Methode als Parameter)? Allgemeine Java-Themen 10
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
H Generics als Parameter Allgemeine Java-Themen 1
N [stream-api] Parameter pro Typ zählen Allgemeine Java-Themen 1
OnDemand Maximale Parameter Allgemeine Java-Themen 5
M final vor dem parameter eines Konstruktors Allgemeine Java-Themen 1
S Servlet, per URLConnection Mit String Http Parameter mitsenden Allgemeine Java-Themen 3
M Parameter-Datei einlesen (zeilenweise); Dateiintegrität Allgemeine Java-Themen 7
H JasperReport: Parameter befüllen Allgemeine Java-Themen 7
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
G Polymorphie Funktion als Parameter Allgemeine Java-Themen 8
G Methoden Unterschiedliche viele Parameter Allgemeine Java-Themen 17
F Parameter im Link /jar-Aufruf Allgemeine Java-Themen 12
S OOP Designrichtlinie Parameter Prüfung Allgemeine Java-Themen 7
C char und char-Array als parameter übergeben Allgemeine Java-Themen 6
B Array Parameter Problem Allgemeine Java-Themen 3
C Reflektions, Benutzer soll Konstruktor auswählen und Parameter übergeben können Allgemeine Java-Themen 5
S Keytool: mögliche Werte für Parameter Allgemeine Java-Themen 4
H Externes Programm, Parameter Allgemeine Java-Themen 6
C Webservice: XML Parameter übergabe. Allgemeine Java-Themen 7
M Session-Parameter setzen? Allgemeine Java-Themen 10
P VM-Parameter -D... Allgemeine Java-Themen 3
V Wildcard aus Parameter in return type Allgemeine Java-Themen 2
O Collections Eigene Methodenzusicherung bei Collections als Parameter Allgemeine Java-Themen 2
W ScriptEngine + Wie Parameter übergeben bei Fukntion? Allgemeine Java-Themen 2
A Reflection Konstruktor Parameter Supertyp Allgemeine Java-Themen 2
F Parameter für Java Applikation per xml ins Meta-inf speichern? Allgemeine Java-Themen 3
J BlueJ Methode hat zu viele Parameter Allgemeine Java-Themen 6
R VM-Error - BadWindow (invalid Window parameter) Allgemeine Java-Themen 4
J Parameter an Java übergeben Allgemeine Java-Themen 10
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
P VM Parameter und .jar Allgemeine Java-Themen 3
L Parameter-Objekte verändern oder nicht? Allgemeine Java-Themen 6
J Parameter absichtlich für außen verändern Allgemeine Java-Themen 4
A wie kann man Parameter an ein Task übergeben? Allgemeine Java-Themen 3
Iron Monkey Singleton mit Parameter Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben