(erledigt)[WinAPI] UTF-8-Kommandozeile für CreateProcess()
Verfasst: 01.10.2015, 14:16
Huhu,
ExifTool erwartet seine Parameter UTF-8-kodiert. Ich rufe es allerdings via CreateProcessW() auf, welches die Kommandozeile in UTF-16 erwartet. Zusammengefasst:
Was soll ich jetzt tun?
Die ANSI-Version (CreateProcessA()) bringt nichts, weil sie intern die Kommandozeile von der System Codepage zu UTF-16 konvertiert. Überhaupt verstehe ich nicht, wie ich die Daten übergeben soll:
ExifTool erwartet seine Parameter UTF-8-kodiert. Ich rufe es allerdings via CreateProcessW() auf, welches die Kommandozeile in UTF-16 erwartet. Zusammengefasst:
Was soll ich jetzt tun?
Die ANSI-Version (CreateProcessA()) bringt nichts, weil sie intern die Kommandozeile von der System Codepage zu UTF-16 konvertiert. Überhaupt verstehe ich nicht, wie ich die Daten übergeben soll:
- Ich habe meinen Dateinamen in UTF-16
- Ich konvertiere ihn zu UTF-8
- Irgendwie muss ich ihn jetzt in die UTF-16-WinAPI füttern, damit die ihn an das Tool übergibt
- Das Tool erhält seine Kommandozeile ebenfalls in UTF-16 (weil es unter der WinAPI gar nicht anders geht), scheint sie aber entweder durch die CRT oder selber zu UTF-8 zurückzukonvertieren
- Den UTF-16-Dateinamen reinfüttern bewirkt ein totales Fuckup bei Sonderzeichen
- UTF-16, das ausschließlich ASCII-Zeichen enthält, funktioniert fehlerfrei