• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Encodings auf OpenBSD und FreeBSD und fat32

h^2

hat ne Keule +1
Mitarbeiter
Themenstarter #1
Ich verstehe es nicht so ganz. Meine locale ist auf dem FreeBSD-Desktop und auf dem OpenBSD laptop jeweils auf de_DE.UTF-8 gestellt. Ich habe eine SD-karte unter OpenBSD mit ganz vielen Dateien beschrieben. Die Dateinamen sehen unter OpenBSD ganz normal aus, also zB "bäöoöß". Wenn ich auf dem OpenBSD versuche so eine Datei mit `convmv -f latin1 -t utf-8` zu konvertieren sagt er auch die Datei sei schon UTF-8.

Soweit so gut. Wenn ich die SD-karte nun in den FreeBSD-Rechner stecke und beim mounten keine locale angebe, dann ists richtig kaputt. Ein ls triggert schon Fehler im Verzeichnis (also nicht Darstellungsfehler, sondern ungültiges irgendwas und Dateien lassen sich nicht mal (unter komischem Namen) öffnen/bearbeiten. Wenn ich unter FreeBSD beim mounten `-L de_DE.UTF-8` angebe, dann klappt das mounten besser und alles sieht so aus, als seien die Dateien eben nicht UTF8, also `bärüöüöÃ` statt "bäöoöß". Wenn ich hier nun `convmv -f latin1 -t utf-8`drauf aufrufe behauptet das aber auch wiederum die Datei sei schon UTF8.

Als entweder OpenBSD oder FreeBSD versucht mich zu trollen. Aber welches? Und wie kriege ich vernünftigen Zugriff von beiden hin? Welches encoding ist mir letztendlich egal, hauptsache es geht.
 

mr44er

Well-Known Member
#2
Geraten:

https://www.freebsd.org/cgi/man.cgi...ath=FreeBSD+7.2-RELEASE+and+Ports&format=html

Code:
How to undo double UTF-8    (or other) encoded filenames

       Sometimes it might happen that you "double-encoded" certain filenames,
       for example the file names already were UTF-8 encoded and you acci-
       dently did another conversion from some charset to UTF-8. You can sim-
       ply undo    that by    converting that    the other way round. The from-charset
       has to be UTF-8 and the to-charset has to be the    from-charset you pre-
       viously accidently used.     If you    use the    "--fixdouble" option convmv
       will make sure that only    files will be processed    that will still    be
       UTF-8 encoded after conversion and it will leave    non-UTF-8 files
       untouched. You should check to get the correct results by doing the
       conversion without "--notest" before, also the "--qfrom"    option might
       be helpful, because the double utf-8 file names might screw up your
       terminal    if they    are being printed - they often contain control
       sequences which do funny    things with your terminal window. If you are
       not sure    about the charset which    was accidently converted from, using
       "--qfrom" is a good way to fiddle out the required encoding without
       destroying the file names finally.