Unicode-Parameter in Java

ntor

Stammuser
Hallo Leute!
Ich wollte ID3iconv verwenden, um MP3s mit kyrillischen (also falschen Tags) umzuwandeln in UTF-8-Tags. Das funktioniert wunderbar, wenn ich das auf ganze Verzeichnisse anwende. Wenn ich aber einzelne Dateien eingebe, die zum Beispiel "Олег Газманов - Друг.mp3" heißen, dann bricht das Programm ab, da es Datei "???? ???????? - ????.mp3" nicht öffnen kann.

Das Programm ist in Java geschrieben, wovon ich leider keine Ahnung habe und bevor ich mir Ecplise etc. installier wollte ich fragen, ob sich einer erbarmen könnte mir übergebenen Argumente mit rechten Java-Code umzucodieren, sodass die Dateien geöffnet werden können. Dann wäre eine per PM zugeschickte jar natürlich das höchste!


Den Code gibt es hier: ID3iconv


LG ntor
 

bitmuncher

Senior-Nerd
Wenn du den Pfad/die Datei per Parameter übergibst, musst du ein Terminal verwenden, das Unicode unterstützt oder du sagst Java beim Aufruf welches Encoding es verwenden soll (java -Dfile.encoding=UTF-8 -jar meinjar.jar). Funktioniert aber meines Wissens nach nur mit Oracles Java.
 

ntor

Stammuser
Wenn du den Pfad/die Datei per Parameter übergibst, musst du ein Terminal verwenden, das Unicode unterstützt oder du sagst Java beim Aufruf welches Encoding es verwenden soll (java -Dfile.encoding=UTF-8 -jar meinjar.jar). Funktioniert aber meines Wissens nach nur mit Oracles Java.

Funktioniert leider nicht, den Dateinamen erfolgreich zu übergeben. Er kommt jetzt (bei UTF-16) als "? ? ? ? ? ? ? ? . ? ? ? ? ? ? ? . m p 3" an. (Was ja logisch ist...) Ist die cmd-shell denn nicht Unicode-kompatibel, denn anzeigen kann sie mir die Dateien ja korrekt mit bspw. dir?

PS: UTF-16, da die Dateinamen bei NTFS AFAIK als UTF-16 abgelegt sind.
 

CDW

Moderator
Mitarbeiter
ggf erstmal die cmd auf UTF-8 setzen:
chcp 65001
Alternativ:
Lass Dir mal die Codepage der cmd mit "chcp" ausgeben. Und übergebe diese dann als -Dfile.encoding Paramter.
 
Oben