non-ASCII-Zeichen in Dateinamen

23/09/2008 - 08:42 von Ulli Horlacher | Report spam
UNIX deklariert ja leider nicht den Zeichensatz in Dateinamen.
Was nun, wenn da non-ASCII-Zeichen drin sind?
Wie sollte eine Anwendung damit umgehen?

$LC_CTYPE zu verwenden macht keinen Sinn, weil ja je nach file system,
directory oder gar file unterschiedliche Zeichensaetze verwendet sein
koennen.

Gibts da so was wie eine "best practice"?

Konkreter Fall:

Ich hab ein Programm fuer file transfer geschrieben, wo der Empfaenger
eine Benachrichtigungs-E-mail bekommt. Wie soll ich da den
MIME-Zeichensatz setzen?

Ullrich Horlacher Informationssysteme und Serverbetrieb
Rechenzentrum E-Mail: horlacher@rus.uni-stuttgart.de
Universitaet Stuttgart Tel: ++49-711-685-65868
Allmandring 30 Fax: ++49-711-682357
70550 Stuttgart (Germany) WWW: http://www.rus.uni-stuttgart.de/
 

Lesen sie die antworten

#1 Rainer Weikusat
23/09/2008 - 11:19 | Warnen spam
Ulli Horlacher writes:
UNIX deklariert ja leider nicht den Zeichensatz in Dateinamen.



Es gibt keine 'Zeichensaetze fuer UNIX(*)-Dateinamen'. Ein solcher ist
definiert als Folge von Bytes deren Zahlenwert weder 0 noch der fuer /
benutzte ist.

Was nun, wenn da non-ASCII-Zeichen drin sind? Wie sollte eine
Anwendung damit umgehen? $LC_CTYPE zu verwenden macht keinen Sinn,
weil ja je nach file system, directory oder gar file
unterschiedliche Zeichensaetze verwendet sein koennen.



Sie benutzen gar keine Zeichensaetze. Wie eine der oa Bytefolgen
darzustellen ist, soll eine Anwendung den locale-Einstellungen
entnehmen koennen. Falls dabei nichts sinnvolles herauskommt (ueblich
waere fuer Linux-manapages zB, dass die entweder iso-8859-1[5] oder
UTF8 kodiert sind und man darf sich anhand der relativen Haeufigkeiten
aussuchen, welche man als Matsch angezeigt bekommen moechte) ist das
ein Problem des Benutzters.

Gibts da so was wie eine "best practice"?



Ja. Sie lautet 'am besten wird man in den USA geboren'. Andernfalls
hat man eben mit gewissen, technischen Schwierigkeiten zu kaempfen.

Konkreter Fall:

Ich hab ein Programm fuer file transfer geschrieben, wo der Empfaenger
eine Benachrichtigungs-E-mail bekommt. Wie soll ich da den
MIME-Zeichensatz setzen?



Auf dass, was der Empfaenger gerne haette. Unter der Annahme, dass Dir
bekannt ist, welche Kodierungen die Anwendungen, mit deren Hilfe die
Namen erzeugt wurden, benutzt haben, koennte man das bei
Inkompatibilitaet ggf uebersetzen.

Ähnliche fragen