• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kodierung wechsel dich spielchen

Hallo zusammen,

ich bin gerade sehr am Verzweifeln:

Ich habe eine NAS, auf der mehrere Dateien abgelegt sind. Das System ist ein Debian und es wird durchgängig ISO-8859-15 genutzt. Um sicher zu stellen, das auch alle Dateien der Kodierung entsprechen, habe ich entsprechend convmv drüber laufen lassen.
Nun ist es so, dass wenn ich entsprechende Samba-Freigaben mit CIFS auf einem OpenSUSE 10.3 Rechner (hab momentan keine andere Distribution zum testen) mounte, die Umlaute
  • In der Konsole via SSH nicht korrekt dargestellt werden
  • In der Konsole in KDE korrekt dargestellt werden
  • Im Konqueror korrekt dargestellt werden
  • Im Konqueror via smb:// korrekt dargestellt werden
Jetzt habe ich gedacht, dass die Kodierung für die Konsole falsch eingestellt ist, sieht aber nicht so aus:
Code:
bigbrother:/network # locale
LANG=de_DE@euro
LC_CTYPE="de_DE@euro"
LC_NUMERIC="de_DE@euro"
LC_TIME="de_DE@euro"
LC_COLLATE="de_DE@euro"
LC_MONETARY="de_DE@euro"
LC_MESSAGES="de_DE@euro"
LC_PAPER="de_DE@euro"
LC_NAME="de_DE@euro"
LC_ADDRESS="de_DE@euro"
LC_TELEPHONE="de_DE@euro"
LC_MEASUREMENT="de_DE@euro"
LC_IDENTIFICATION="de_DE@euro"
LC_ALL=de_DE@euro
Wenn ich dann aber ein
Code:
ls -l | recode utf8..iso8859-15
ausführe, wird das Listing in der Konsole korrekt dargestellt. Das heißt, dass das Listing in UTF8 angezeigt wird, obwohl ich entsprechende Charset in Samba für ISO-8859-15 definiert habe (Konfiguration am Ende meines Posts). Als nächste "Spielerei" bin ich nun hingegangen, und habe beim mounten der Freigaben in iocharset=ISO-8859-15 hinzugefügt. Mit folgendem Effekt, dass die Umlaute
  • In der Konsole via SSH korrekt dargestellt werden
  • In der Konsole in KDE nicht korrekt dargestellt werden
  • Im Konqueror nicht korrekt dargestellt werden
  • Im Konqueror via smb:// korrekt dargestellt werden
Wenn ich in der KDE-Konsole locale eingebe, bekomme ich das hier:
Code:
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
Im großen und ganzen wäre es wohl irgendwie das beste, wenn ich KDE irgendwie beibringen könnte, das es die Welt aus ISO-8859-1 Sicht sehen soll. Ich habe auch schon sowohl im Konqueror als auch in Konsole entsprechend ISO-8859-1 eingestellt, aber beides blieb ohne Wirkung (auch nach einem Restart). Mittlerweile bin ich etwas ratlos.

Hier die Konfig vom Server:
Code:
[global]
    add user script = /usr/sbin/useradd -m %u
    delete user script = /usr/sbin/userdel -r %u
    add group script = /usr/sbin/groupadd %g
    delete group script = /usr/sbin/groupdel %g
    add user to group script = /usr/sbin/usermod -G %g %u
    add machine script =  /usr/sbin/useradd -s /bin/false -d /dev/null -g computers %u
    domain master = yes
    domain logons = yes
    hide special files = yes
    dos charset = CP1250
    display charset = iso-8859-15
    unix charset = iso-8859-15
    unix extensions = yes
    netbios name = lansrv01
    log file = /var/log/samba/log.%m
    local master = yes
    logon script = logon.cmd
    max xmit = 16644
    os level = 35
    passdb backend = tdbsam
    preferred master = yes
    security = user
    server string = "Network Storage Server"
    socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 IPTOS_THROUGHPUT IPTOS_LOWDELAY SO_KEEPALIVE
    username map = /etc/samba/users.map
    wins support = yes
    workgroup = ARBEITSGRUPPE
    interfaces = 192.168.100.100

[picture]
    path = /data/picture
    writable = yes
    printable = no
    volume = music
    force group = users
    force create mode = 0664
    force directory mode = 0775

Wie ich mounte auf der Clientseite:
Code:
//192.168.100.100/picture      /network/picture           cifs    credentials=/home/username/.smbcredentials,users,uid=username,gid=users,dir_mode=0775,file_mode=0664

Fall 1 ohne iocharset=iso8859-15, Fall 2 mit iocharset=iso8859-15[/code]

Hat irgend jemand eine Idee, wie ich hier weiterkomme?
 
prodigy7 schrieb:
Nun ist es so, dass wenn ich entsprechende Samba-Freigaben mit CIFS auf einem OpenSUSE 10.3 Rechner (hab momentan keine andere Distribution zum testen) mounte, die Umlaute
[*]In der Konsole via SSH nicht korrekt dargestellt werden
... da SUSE standardmäßig mit dem besseren UTF-8 arbeitet,
[*]In der Konsole in KDE korrekt dargestellt werden
das u.U. eine automatische Erkennung der KDE-Konsole ist,
[*]Im Konqueror korrekt dargestellt werden
nur was hier dargestellt wird, verrätst du nicht,
[*]Im Konqueror via smb:// korrekt dargestellt werden
SMB/CIFS verwendet durchgehend UTF-16; auf smbd-Seite wird also UTF-8 zu UTF-16 (verlustfrei, angemerkt) konvertiert, und auf smbclient-Seite verlustbehafter(!) auf ISO runtergemappt. --- Das aber nur mit "unix charset = utf-8"...
Wenn ich dann aber ein ls -l ...
Scheint, als ob "ls" die Locale ignoriert und einfach nur die Dateinamen ausgibt. Das erscheint mir auch richtig, gemessen daran, dass aus bloßen Dateinamen auf kein Encoding geschlossen werden kann.
 
Hi jengelh,

danke für den Hinweis über die Interna von Samba. Ich habe jetzt die NAS auf UTF-8 umgestellt und entsprechend alle Dateinamen konvertiert.
Jetzt klappts hier auch mit dem Nachbarn - sprich: Es wird überall korrekt angezeigt ;-)
Bis dato hatte ich wohl einfach nur Glück bei solchen Wechselspielen

VG
prodigy7
 
Oben