UTF-8-Umlaute werden nicht nach ISO-8859-1 konvertiert

Hallo!

Ich habe hier Dateien mit UTF-8-Umlauten (ä, ö, ü) und möchte die Dateinamen in ISO-8859-1-Tags übernehmen.

Wenn ich das mit der Funktion "Konverter -> Dateiname - Tag" in Mp3Tag 2.59a mache, sieht das Resultat unschön aus:

Beispiele (Dateiname -> %title%):

  • Aus "Höher.mp3" wird "Ho?her"
  • Aus "Identität.mp3" wird "Identita?t"

Super wäre es, wenn MP3Tag für diese Fälle eine Art Standard-Mapping von UTF-8-Zeichen auf ISO-8859-1-Zeichen hätte, so dass Umlaute (und andere spezielle Buchstaben) automatisch sauber konvertiert werden, ähnlich der Notepad++ - Funktion "Kodierung -> Konvertiere zu ANSI".

Denn Fragezeichen will sicherlich niemand im Ergebnis haben, und wenn es eine klare Entsprechung für diese UTF-8-Zeichen in ISO-8859-1 gibt, spricht kaum etwas dagegen, automatisch eine Umwandlug vorzunehmen, oder?

Danke und Gruß :slight_smile:
Johannes

Wer, wo, was ist genau das Problem?

  • Unicode Zeichen (weltweit)
  • ISO-8859-x (spezifische Tabellen)
  • Spracheinstellung auf dem Computer
    ???


    DD.20140508.2251.CEST


  • Das Problem ist meinem Eindruck nach unabhängig von der Spracheinstellung auf dem Computer.
  • Das Problem ist nicht leicht reproduzierbar (etwa indem man selbst einen Dateinamen mit Umlauten definiert).

Die folgenden Screenshots zeigen, was ich meine. Als Beispiel dient eine "problematische" Datei "5.11 - 1 Präsenz.mp3" und eine unproblematische Datei "5.12 - 2 Präsenz.mp3".

Beobachtung 1:
Die problematische Datei enthält ein UTF-8-"ä", das sowohl vom Total Commander als auch vom Windows Explorer ohne Probleme und völlig korrekt als "ä" dargestellt wird:



Beobachtung 2:
Mit dem Tool "Disk Explorer" ( DiskExplorer von Runtime Software, man kann eine kostenlose Demo-Version herunterladen ) kann man die NTFS-Verzeichniseinträge genauer unter die Lupe nehmen:


Beobachtung 3:
Mp3Tag v2.59a kann das UTF-8-ä nicht sauber nach ISO-8859-1 (aka "Latin-1", "ANSI") konvertieren. Führt man ein "Dateiname -> Tag" aus, erscheinen in den Tags hässliche Fragezeichen.

Super wäre es, wenn MP3Tag für diese Fälle eine Art Standard-Mapping von UTF-8-Zeichen auf ISO-8859-1-Zeichen hätte, so dass Umlaute (und andere spezielle Buchstaben) automatisch sauber konvertiert werden, ähnlich der Notepad++ - Funktion "Kodierung -> Konvertiere zu ANSI".




Mit den Bildern ist es gut erklärt, so sieht man es sofort!
Bei meinem Test habe ich irgendwie dasselbe Ergebnis erzeugen können.

Das normale Umlaut Zeichen "ä" gibt es im ANSI/UTF-8 Zeichensatz an der Position xE4/d228.
Das ist ein echtes "UTF-8-ä" (precomposed / vorher zusammengesetzt).

Das problematische Zeichen ist ein Vokal "a" mit nachfolgendem Trema (decomposed / zerlegt)
U+0061 LATIN SMALL LETTER A
U+0308 COMBINING DIAERESIS

Siehe auch ...
http://de.wikipedia.org/wiki/Trema#Das_Tre...tenverarbeitung

Als q&d Lösung kann man die fehlerhaft umgewandelten Zeichen ersetzen.

$replace(%TITLE%, 'a?','ä','e?','ë','i?','ï','o?','ö','u?','ü','y?','ÿ', 'A?','Ä','E?','Ë','I?','Ï','O?','Ö','U?','Ü','Y?','Ÿ')

Doch man sollte das Problem dort lösen, wo es seinen Anfang genommen hat ...
bei der Eingabe mit der Tastatur.
Ist es die Tastaturbelegung Schweiz?
Oder wie oder was?
Entweder wurden die falschen Tasten gedrückt ...
oder das Programm oder das Betriebssystem funktioniert falsch, ...
was die schwierigen Dateinamen erzeugt hat.

Die Umwandlung mit Notepad++ habe ich nicht nachvollziehen können.
Bist du sicher, dass Notepad++ diese Art der Umwandlung beherrscht ...
von 'UTF-8 decomposed' nach 'ANSI precomposed'?

DD.20140519.1125.CEST

Welche Länge zeigt Mp3tag an für den jeweiligen Dateinamen mit normal-ä bzw. trema-ä mit der Funktion $len(%_filename%) ?

DD.20140519.1617.CEST


Erstmal Danke für die weitere Analyse! Dass es in UTF-8 verschiedene Codes für "ä" gibt (zusammengesetzt / zerlegt), wusste ich noch nicht.

Zwei Argumente für eine Lösung in Mp3tag (anstelle eines Workarounds bzw. des Problem-Am-Ursprung-Vermeidens):

1.)
Manchmal bekommt man fertige MP3-Dateien und möchte diese mit Mp3Tag "aufhübschen" ohne einen Einfluss auf den Ort des Entstehens der Dateinamen zu haben (etwa bei einem Kauf). So ist es auch im vorliegenden Fall: Ich weiß nicht, wer diese Dateien erstellt hat, und aus welchem Grund er diese außergewöhnliche (wenngleich standardkonforme) UTF-8-Kodierung für Umlaute gewählt hat.

2.)
Die Unterscheidung von Umlaut und Trema ist eine Notlösung, die nur dann sinnvoll ist, wenn es keine bessere Darstellungsmöglichkeit gibt. In dem von Dir verlinkten Wikipedia-Artikel heißt es z.B.
"Wenn in der Datenverarbeitung eine Unterscheidung von Umlaut und Trema notwendig ist, empfiehlt ISO/IEC JTC 1/SC 2/WG 2..."

Aus diesem Grund stellen Total Commander und Windows Explorer die "zerlegten" UTF-8-Umlaute nicht zerlegt, sondern zusammengesetzt an.

Und deshalb sollte Mp3Tag auch tun, was möglich ist, nämlich zerlegte UTF-8-Umlaute in zusammengesetzte Umlaute umwandeln, zumindest wenn eine Umwandlung von UTF-8 nach ISO-8859-1 stattfindet.

Ob Notepad++ zerlegte UTF-8-Umlaute in zusammengesetzte Latin-1-Umlaute umwandeln kann, habe ich in der Tat nicht untersucht.