[linux-l] Fedora und Umlaute

Frank Reker frank at reker.net
Mo Mai 17 15:13:54 CEST 2004


Olaf 'Rübezahl' Radicke disse:
> Hi!
>
> Ich habe umfangreiches Textmaterial, was ich unter Mandrake 9.2
> und Aurox 9.2 (RedHat 9.0) erstellt habe (LaTeX). Wenn ich das
> mit Fedora2 test 3 (egal mit welchen Programm) öffne sind alle
> Umlaute verhunst.
>
> Gibts dazu eine Erkärung?
>
> Bei der Gelegenheit:
> Was hat es mit "utf-16" auf sich?

wer brauch utf-16????
utf16 ist eine Unicodecodierung, wie ucs2, ucs4 und utf8.
Unicode definiert 2.147.483.648 (2^31) Zeichen, von denen
bisher aber nur die ersten 65536 verwendet werden. Von daher
kennen die meisten BSe (incl. Linux und Windows) auch nur
16bit unicode. Um selbige im Computer darzustellen, gibt es
4 verschiedene Codierungen. UCS4 stellt die Buchstaben als
4Byte (32bit) integer da. Bei UCS2 werden sie als 2Byte (16bit)
integer dargestellt. Damit lassen sich natuerlich nicht alle
theoretisch existierenden Zeichen darstellen, reicht aber
momentan aus. utf-8 kodiert die Zeichen als folge von 8bit
integern. Wobei alle Zeichen von 0-127 (Standard ASCII)
mit einem Byte kodiert werden. Zeichen zwischen 128 und 2047
mit zwei Bytes und Zeichen zwischen 2048 und 65535 mit 3 Bytes,
usw. bis max. 6 Bytes. Die Zeichenfolge ist ueberdies
selbst synchronisierend. Also wenn mal ein Byte verfaelscht
wird, oder fehlt, dann werden max. 2 Zeichen falsch angezeigt.
Meistens sogar nur eines. Der Vorteil von utf-8 ist, dass
Dateien mit nur Standard-ASCII Zeichen (also keine Umlaute)
wie herkoemmliche ASCII texte kodiert werden. Das trifft z.B.
auf alle Configfiles zu. Ausserdem gibt es keine Byte-Order
Problem wie bei den anderen Darstellungen.
Die letzte Kodierung im Bunde ist utf-16. Aehnlich wie bei
utf-8, werden Zeichen mit einer unterschiedlichen Laenge
von Bytes dargestellt; allerdings auf der Basis von 16bit.
Sprich die Zeichen koennen mit 2, 4 oder 6 Bytes kodiert
werden. Zur Zeit findet AFAIK lediglich utf-8 und ucs2
einsatz. UCS2 wird von Microsoft bevorzugt, utf-8 hingegen
von den meisten Unixen.
Von daher nehme ich an, dass du utf-8 und nicht utf-16
meinst?!?!
Falls du einen Text von latin1 nach utf-8 (oder umgekehrt)
wandeln willst, kannst du das Programm recode benutzen.
recode latin1..utf8



-- 
Don't worry be happy ...
Ciao Frank



Mehr Informationen über die Mailingliste linux-l