[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: auf UTF-8 umsteigen, Folgen?



On 12.07.06 02:02:15, Steffen Schulz wrote:
> On 060711 at 21:20, Andreas Pakulat wrote:
> > > Ein Problem stellen auch zB Dateinamen dar. Die sind ja auch irgendwie
> > > kodiert, verfuegbare Codings sind im Kernel zu konfigurieren.
> > Also damit habe ich eigentlich auch keinerlei Probleme. Wenn ein User
> > mit de_DE locale eine Datei mit Umlauten auf einem *nix-Dateisystem
> > ablegt kann ich die auch korrekt in UTF-8 locale sehen.
> 
> Hm. Ich hoffe mein ü kommt korrekt an, sonst wird das jetzt etwas wirr:

Ja, passt schon.

> [pepe@goofy ~]$ echo $TERM, $LANG
> rxvt-unicode, en_US.utf8

Ich mag mich da jetzt irren, aber en_US.utf8 ist keine korrekte locale,
denke ich. Richtig ist en_US.UTF-8, schau mal in deine /etc/locale.gen.

> [pepe@goofy ~]$ touch tür
> [pepe@goofy ~]$ ls tür
> tür

Da waere mal interesant wie es mit einem Hexeditor aussieht, also

ls tür >datei; hexedit datei

Da sollten dann 4 Bytes drin stehen (alternativ auch ls -l datei)

> [pepe@goofy ~]$ rm tür
> [pepe@goofy ~]$ export LANG=en_US
> [pepe@goofy ~]$ urxvt
> 
> -> touch tür;ls tür; rm tür; geht in dem terminal ebenso. Allerdings
> faellt auf, dass das terminal irgendwie der Meinung ist, ein Zeichen
> anzuzeigen(ü) und 2 zeichen zu editieren, xterm das selbe. :-/

Ja, weil das Terminal denkt es benutzt eine UTF-8 locale, du aber in
Wirklichkeit eine latin1-Kodierung nutzt.

> -> touch tür; exit
> 
> [pepe@goofy ~]$ rm tür
> rm: cannot remove `tür': No such file or directory
> [pepe@goofy ~]$ ls tür
> ls: tür: No such file or directory
> [pepe@goofy ~]$ ls t?r
> tür

Das Terminal ist aber noch im UTF-8 Modus. So wie du das machst kann ich
das auch nachvollziehen, wobei konsole mir bei einem ls dann nur "tr"
ausgibt. Wenn ich aber dann konsole sage dass die Locale auf latin1
geaendert wurde, wird bei ls wieder alles korrekt dargestellt. Und ich
kanns mit rm tür auch loeschen.

Kurz: Die Kodierung im Dateisystem ist immer diesselbe, nur die Anzeige
durchs Terminal ist u.U. kaputt.

> Nachdem convmv den Dateinamen von 8859-1 nach utf-8 convertiert hat,
> kann ich den Dateinamen korrekt eintippen. Vorher hats dann auf
> Dateisystemebene nicht gepasst, weil die ü unterschiedlich kodiert
> werden. 

Hier irrst du dich. Auf Dateisystemebene ist alles korrekt gewesen, nur
dein Terminal wusste nicht dass es das "High-Byte" nicht als erstes von
2 UTF-8 Bytes interpretieren muss.

> > > Nerviges Problem ist, dass man fuer unicode modifizierte terminals
> > > benutzt, die dann auch anders heissen. z.B. rxvt-unicode oder uxterm.
> > Bloedsinn, deine Howtos sind hoffnungslos veraltet. Solange LANG korrekt
> > gesetzt ist, funktionieren xterm, gnome-terminal, konsole und
> > xfce4-terminal wunderbar. Ich vermute aber das bei dir einfach LANG
> > falsch gesetzt ist.
> 
> Nun, als ich "damals" die entsprechenden terminals probiert habe, wurde
> halt auf die unicode-varianten verwiesen. Das is nu mind. nen Jahr her,
> okay...aber "meine" Howtos erzaehlen noch immer was von Dateinamen:
> 
> http://de.gentoo-wiki.com/Utf8#Dateinamen

Ich hab doch gesagt, die Howtos sind veraltet und das gilt fuer fast
alle UTF-8 Howtos. Glaub mir einfach wenn ich dir sage xterm erkennt ob
es aus einer UTF-8 oder non-UTF-8 locale heraus gestartet wird.

> Oh, und rate was ich eben in der muttrc fand...
> 
> set send_charset="UTF-8:ISO-8859-15:ISO-8859-1"
> 
> Da ist wohl was schiefgelaufen.. ^^

Ja, genau falschherum.

Andreas

-- 
Someone whom you reject today, will reject you tomorrow.



Reply to: