Re: Umlaute und andere Sonderzeichen in Dateinamen konvertieren?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 21 Mar 2014 10:44:28 +0100 (CET)

Polytropon <freebsd(at)edvax.de> wrote:
> Praxis - das ist ein gutes Stichwort! Mir ist vor ein paar
> Jahren mal Arztpraxis-Software untergekommen, wo man zwar
> Umlaute in Namen eingeben konnte, dieser bei jeglichen
> Druckausgaben aber fehlten. Herr "Jrg Mller" mußte also
> als "Joerg Mueller" eingegeben werden.

Das ist ganz klar ein Bug (und zwar ein eklatanter) in der
betreffenden Software, die ihrem Entwickler dafür um die Ohren
gehauen hört, damit es unverzüglich behoben wird.

Aber das ist gewiss kein Argument dafür, generell auf Umlaute
zu verzichten.

> > Beim Inhalt (nicht Namen) von Textdateien verwende ich entweder
> > ISO 8859 oder UTF-8, je nach Einzelfall. Mein Editor macht
> > das in der Regel automatisch; Mails und Skripte z.B. werden in
> > ISO 8859 verfasst, bestimmte andere Dokumente dagegen in UTF-8
> > inkl. BOM.
>
> Wie hast Du das konfiguriert + welcher Editor ist es, daß
> das so reibungslos funktioniert?

Ich verwende "joe". Das hat traditionelle Gründe, weil ich
halt aus der alten CP/M- und MS-DOS-Ecke komme (WordStar,
TP usw.) und joe per Default das gleiche Bedienkonzept und
die gleiche Tastaturbelegung hat. Letztere habe ich mir
allerdings über die Jahre immer weiter angepasst und
verfeinert, so dass sie nicht mehr viele Gemeinsamkeiten
mit den Ursprüngen hat.

Meine Shell-Sessions laufen (zur Zeit noch) immer mit
LC_CTYPE=de_DE.ISO8859-15. Wenn ich joe mit einer Datei
starte, die UTF-8-kodiert ist (erkennbar am BOM; er kann
es aber auch ohne BOM mit Hilfe einer Heuristik erkennen),
dann "übersetzt" er es automatisch für mein Locale, d.h.
ich merke es gar nicht, wie die Datei kodiert ist. So
sollte es ja auch idealerweise sein. Das geht sogar
gemischt: Ich kann in einer joe-Session gleichzeitig
eine UTF-8-kodierte Datei und eine ISO-8859-kodierte Datei
geöffnet haben.

Das Tool "less" hat leider keine solche Automatik (zumindest
habe ich so ein Feature nicht finden können). Daher habe
ich mir als Work-around ein kleines Wrapper-Skript gebaut,
das nachschaut, ob am Anfang ein BOM steht, und dann ggf.
noch iconv aufruft, um von UTF-8 nach 8859-15 umzuwandeln,
bevor das eigentliche less aufgerufen wird.

Wenn ich dann irgendwann mal meine Shell-Sessions per default
auf UTF-8 umswitche, muss ich an joe gar nichts ändern, und in
meinem less-Wrapper muss ich ggf. die Konvertierungsrichtung
ändern.

> > > > Und selbst, wenn man den Umlaut nicht eingeben kann, weil
> > > > man eine unpassende Tastaturbelegung hat, dann tippt man halt
> > > > stattdessen "?" und überlässt es dem Globbing der Shell.
> > > > Oder man verwendet die Tab-Completion.
> > >
> > > Genau dies ist ja eine Frage der Shell, ob die das so
> > > macht, wie man will.
> >
> > Naja, sogar die krude csh/tcsh kann das.
>
> Plus daß zur deutlichen Darstellung auch das Terminal noch
> mitmachen sollte. :-)

Damit Globbing und Tab-Completion funktionieren, muss das
Terminal nicht unbedingt mitmachen. Ist natürlich nicht
schön, wenn anstelle der betreffenden Zeichen nur "?"
erscheint, aber wenigstens kann man mit den Dateien umgehen
(löschen, umbennenen usw.). "ls -B" ermöglicht nötigenfalls
auch eine eindeutige Anzeige, um Dateien differenzieren zu
können, die sich nur in den "?" unterscheiden. Natürlich
geht auch "ls | hd" und ähnliches; es gibt da durchaus viele
Möglichkeiten.

> > > Problematisch ist es z. B., wenn
> > > man ein Archiv entpackt und 100 Dateien namens ????????.MP3
> > > darin findet, d. h. nicht mal ansatzweise ein Unter-
> > > scheidungsmerkmal gegeben ist.
> >
> > Wenn man regulär mit Dateien hantieren muss, die ausschließlich
> > asiatische, kyrillische oder arabische Zeichen verwenden, dann
> > gehe ich davon aus, dass man die entsprechende Sprache spricht
> > und sein System auch passend eingerichtet hat, d.h. die Zeichen
> > sollten dann auch korrekt angezeigt werden. Wenn nicht, was
> > willst Du dann mit den Dateien, wenn Du ohnehin kein Russisch
> > (oder was auch immer) sprichst?
>
> Chinesische Musik vom chinesischen MP3-Player. Hören.
> Nur sind die ID3-Tags auch mit ?????? gefüllt gewesen,
> so daß da auch kein Informationsgehalt... :-)

Da Du (vermute ich) kein Chinesisch sprichst, spielt es für
den Informationsgehalt keine Rolle, ob da "?" angezeigt wird
oder chinesische Schriftzeichen. Und _wenn_ Du chinesisch
sprichst, dann gehe ich davon aus, dass Du Dein System auch
so konfiguriert hast, dass es chinesische Schriftzeichen
anzeigen kann. Das haben zumindest alle Leute in meinem
Bekanntenkreis getan, die eine asiatische Sprache sprechen.

> > Ja, ich habe Deinen Smiley gesehen. Aber ich finde nicht,
> > dass das Dahintersetzen eines Smileys es gestattet, jeden
> > beliebigen Unsinn zu schreiben. ;-)
>
> Ach schade, ich dachte nur. Jedenfalls hast Du den Unsinn
> zweifelsfrei als solchen erkannt. Das ist heute keine
> Selbstverständlichkeit mehr.

Das Problem ist nur, dass es immer Leute gibt, die das nicht
erkennen und es für bare Münze nehmen. Smileys werden da
gerne auch mal ausgeblendet. Daher war ich so frei, es zu
kommentieren.

> > Warum sollte man für deutschsprachige Texte von UTF-8 auf UTF-16
> > umstellen wollen?
>
> Warum sollte man für deutschsprachige Texte von ISO-8859-1 oder -15
> auf UTF-8 umstellen wollen?

Weil dann mehr Zeichen verwendet werden können, wie etwa den
Gedankenstrich (n-dash oder m-dash) oder die in Deutschland --
und auch anderswo -- üblichen gerichteten Anführungszeichen.
(Als Work-around verwende ich manchmal die »französischen«
Anführungszeichen, die es auch in ISO 8859 gibt.)

Und selbstverständlich können in deutschsprachigen Texten auch
zahlreiche andere Zeichen vorkommen, die es in ISO 8859 nicht
gibt, und sei es nur, weil man den Namen eines Mitmenschen
korrekt wiedergeben möchte, oder ein fremdsprachliches Zitat,
oder ein Wort in Lautschrift, oder oder oder.

Dagegen gibt es nur wenige Gründe, warum man von UTF-8 auf
UTF-16 umstellen wollte. Beide Kodierungen können exakt den
gleichen Zeichenumfang aus Unicode darstellen. Auch vom
Implementierungsaufand her unterscheiden sie sich kaum, denn
denn sowohl UTF-8 als auch UTF-16 sind Kodierung mit variabler
Länge: Bei UTF-8 kann ein einzelnes Zeichen durch 1 bis 4
Bytes repräsentiert werden, bei UTF-16 durch 2 oder 4 Bytes.

Der größte Unterschied ist die Kompaktheit von UTF-8 bei
"westlichen" Sprachen sowie die Kompatibilität mit ASCII,
weshalb sich für deutschsprachige Texte UTF-8 eher anbietet
als UTF-16.

> Sinnvoll und korrekt - da stimme ich völlig zu. Die
> Realität zeigt aber immer wieder durch besonders "schöne"
> Beispiele, daß das auch nach hinten losgehen kann. Alles
> weitere erfährst Du in der Schlatildefracterstrasse in
> Berlin. :-)

Ja sich, wenn man's drauf anlegt, kann man jeden Fortschritt
durch "böse" Beispiele ausbremsen.

> > Und unter Windows ist es vollkommen
> > üblich, Leerzeichen in Dateinamen zu verwenden.
>
> Das war schon bei der Amiga möglich, wenn ich mich da
> noch richtig erinnere...

Richtig. Alle Zeichen außer "/" und ":" waren erlaubt,
die Länge war auf 31 Zeichen begrenzt. Aber: Groß- und
Kleinbuchstaben wurden zwar beim Anlegen erhalten, aber
im Zugriff nicht unterschieden.

> > Kein Mensch
> > verwendet da Unterstriche.
>
> Selbst wenn - moderne MP3-Player-Programme (und sogar
> alte wie XMMS) ersetzen bei der Anzeige die Unterstriche
> durch Leerzeichen.

Was auch wieder ein Problem sein kann, da dadurch nicht
zwischen Leerzeichen und Unterstrichen unterschieden werden
kann. Gut, bei einem Player ist es höchstwahrscheinlich
egal. In anderen Fällen vielleicht nicht.

> > Der Duden hat zwar keine eigene authoritative Macht, aber er
> > dokumentiert die Regeln der amtlichen Rechtschreibung, die vom
> > Rat für deutsche Rechtschreibung festgelegt werden.
>
> Das tut er nicht mehr. Er gibt vielmehr die Empfehlungen
> des Duden-Verlags (als einer von vielen, neben Bertelsmann
> und anderen) wieder.

Die Darstellung ist nicht ganz richtig. Wie gesagt, das
amtliche Regelwerk wird vom Rat für deutsche Rechtschreibung
festgelegt. Es wird vom Duden aufgegriffen, der es im
wesentlichen unverändert wiedergibt, aber _zusätzlich_
Empfehlungen für die Fälle gibt, wo die amtlichen Regeln
mehrdeutig sind oder mehrere Möglichkeiten zulassen (und
solche Fälle gibt es eine ganze Menge). Die Konkurrenten
des Duden machen es natürlich genauso, wobei sich deren
Empfehlungen teilweise unterscheiden. Das hat dazu geführt,
dass z.B. Verlage sich die ihnen genehmen Empfehlungen des
Duden und seiner Konkurrenten herausgepickt haben und zu
einem eigenen internen Regelwerk zusammengestellt haben.

Ich persönlich mache es ganz ähnlich und picke mir die
Empfehlungen heraus, die ich für sinnvoll halte, und versuche,
diese zumindest konsistent anzuwenden (was mir nicht immer
gelingt). In bestimmten Fällen ignoriere ich Empfehlungen
auch bewusst.

Die Rechtschreibung hat natürlich keine "Gesetzeskraft", und
jeder kann so schreiben, wie er will. Das war schon immer
so, auch vor den Reformen. Die amtlichen Regeln sind aber
(und waren schon immer) verbindlich für den Unterricht an
Schulen und den Schriftverkehr von Behörden. Ich weiß von
Behördenmitarbeitern, dass es für sie sogar spezielle
Schulungen zu diesem Thema gibt/gab. Aber dass jetzt jeder
Behördenbrief in perfektem "Amtsdeutsch" abgefasst ist, darf
man natürlich nicht erwarten. Das sind ja auch alles nur
Menschen.

> > Ich habe
> > deswegen auf den Duden verwiesen, weil ihn die meisten daheim
> > im Regal stehen haben, im Gegensatz zum amtlichen Regelwerk.
>
> Dabei ist es auch wichtig, welche _Ausgabe_ es ist, da
> diese sich sehr stark widersprechen bzw. unterscheiden,
> sowohl vom amtlichen Regelwerk als auch von sich selbst
> untereinander. Duden ist also nicht gleich Duden! :-)

Natürlich; die Sprache ändert sich ja ständig. Ist ja keine
tote Sprache wie Latein. Ich persönlich habe einen aktuellen
Duden im Regal stehen, sowie die 20. Auflage (nur aus
historischem Interesse).

Die Regel, auf die ich mich bezog und die diese Diskussion
ausgelöst hat, ist in jeder Dudenausgabe der letzten 20 Jahre
(mindestens) zu finden, es hat sich lediglich aufgrund von
Verschiebungen im Zuge der Reformen die Regelnummer geändert.

> > > Da das ß eine Ligatur von Lang-s und Rund-s ist und bei
> > > [...]
> >
> > Es _war_ mal eine Ligatur. Heutzutage wird es aber weitgehend
> > als eigenständiger Buchstabe angesehen.
>
> Das darf man so sehen. Dann ist die Frage, wieviele Buchstaben
> das deutsche Alphabet hat, aber mit "27" zu beantworten (oder
> mit "30", wenn man die Umlaute auch als Buchstaben ansieht).

Also, ich habe in der Grundschule (1. Kl.) gelernt, dass
das Alphabet 26 Buchstaben hat, und dann gibt es noch Ä, Ö,
Ü und ß, also insgesamt 30 Buchstaben. Das "scharfe s" wurde
immer als eigenständiger Buchstabe angesehen. Dass es früher
mal aus einer Ligatur entstanden war, habe ich erst sehr viel
später erfahren (und nicht in der Schule).

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG,  Marktplatz 29, 85567 Grafing
Handelsregister:  Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München,
HRB 125758, Geschäftsführer:  Maik Bachmann,  Olaf Erb,  Ralf Gebhart
FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd
"C++ is over-complicated nonsense. And Bjorn Shoestrap's book
a danger to public health. I tried reading it once, I was in
recovery for months."
        -- Cliff Sarginson
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 21 Mar 2014 - 10:44:40 CET

search this site