[linux-l] UTF-8 bei Netzwerkdateisystemen

Jan-Benedict Glaw jbglaw at lug-owl.de
So Okt 15 22:43:08 CEST 2006


On Sun, 2006-10-15 20:06:03 +0200, Volker Wegert <mail at volker-wegert.de> wrote:
> Jan-Benedict Glaw <jbglaw at lug-owl.de> writes:
> > On Sun, 2006-10-15 16:05:11 +0200, Volker Wegert <mail at volker-wegert.de> wrote:
> > > ich könnte noch mal den einen oder anderen Tip gebrauchen: Ich habe hier zwei 
> > > Rechner, bei denen jeweils Dateien und Verzeichnisse mit diakritischen Zeichen
> > > vorkommen, die mit UTF-8 kodiert sind. Auf den jeweiligen Rechnern (sprich den
> > > lokalen Dateisystemen) funktioniert das ganz prächtig. Jetzt möchte ich gerne
> > > Dateien auf dem einen Rechner "für den anderen freigeben" (Technik ist mir
> > > herzlich egal) - und da scheppert's. Ich habe schon probiert...
> > > 
> > > ...NFS3: Ganz komisches Verhalten: Die Umlaute (um die geht's hier) in den
> > > Verzeichnisnamen werden beim ls erstmal richtig angezeigt, aber wenn ich in
> > > das Verzeichnis reinbuddeln will, geht nix mehr. Witzigerweise flattert die
> > > tab completion meiner bash beim mehrfachen Tab-drücken zwischen dem
> > > vollständig angezeigten Verzeichnisnamen und einer Version, die hinter dem
> > > ersten Umlaut abgeschnitten ist, hin und her. So nicht verwertbar.
> > 
> > Das riecht für mich, als ob einer der Rechner eben _nicht_ in UTF-8
> > läuft...
> 
> Würde ich nicht ausschließen wollen :-)
> 
> > Erstmal die basics sicherstellen: lokal auf beiden Maschinen einen der
> > Umlaut-behafteten Dateinamen durch einen hexdump jagen.
> > 
> > $ \ls | xxd
> 
> Okay. Das Verzeichnis heißt "Früher".
>                                                    F  r  ü     h  e  r
> auf dem Server:                                    46 72 fc    68 65 72 

ISO-8859-1

> auf dem Client (per NFS gemountet):                46 72 fc    68 65 72 

ISO-8859-1

> auf dem Client (per mkdir aus dem urxvt angelegt): 46 72 c3 bc 68 65 72

UTF-8

> Autsch. Okay, irgendwer lügt da. Beim letzten Punkt übrigens keine Änderung,
> wenn ich das Verzeichnis über die Konsole anlege.

Gut. Die Dateien liegen auf'm Server also in ISO-8859-1{,5}. Der
Client will aber UTF-8.  Kein Wunder, daß es auf der Client-Seite dann
Darstellungs-Probleme gibt...

> > Dann die Ergebnisse erstmal darauf prüfen, daß die *wirklich* valides UTF-8
> > sind.
> 
> Wenn ich http://de.wikipedia.org/wiki/Utf-8 und
> http://www.sql-und-xml.de/unicode-database/latin-1-supplement.html richtig
> verstanden habe, ist U+00FC = 0xfc die UTF-8-Darstellung für das ü, demnach
> spinnt der Client - richtig?

Nein. Auf dem Server sind die Daten falsch (zumindest, wenn das UTF-8
sein soll.)

> Auf dem Client ist in der Kernel-Config folgendes eingetragen:
> ,----
> | CONFIG_NLS_DEFAULT="utf8"
> | CONFIG_NLS_UTF8=y
> `----
> locale sagt mir an allen Stellen de_DE.UTF-8 - aber irgendwas habe ich wohl
> übersehen... Was könnte das sein?

Der Client macht alles richtig. Die Dateinamen auf dem Server sind
falsch, wenn sie UTF-8 sein sollen.  Du mußt die Dateien also einmal
umbenennen. Ein Lauf von find mit iconv sollte das machen können :->

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:               Träume nicht von Dein Leben: Lebe Deinen Traum!
the second  :
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20061015/c656ec36/attachment.sig>


Mehr Informationen über die Mailingliste linux-l