UTF-8 ist – in einfachen Worten gesprochen – eine Art,
Zeichen zu kodieren. Das System basiert auf dem Unicode-Zeichensatz,
mit dem sich alle Zeichen aller Sprachen dieser Welt unterbringen
lassen.
Der Zeichensatz ISO-8859, der bisher am häufigsten benutzt
wird, hat die Einschränkung, dass ein Zeichen nur mit einem
Byte (8 Bit) kodiert wird, weshalb nur maximal 255 Zeichen
insgesamt dargestellt werden können.
Dieses Problem ist bei UTF-8 gelöst, denn es können
bis zu 6 Byte für ein einzelnes Zeichen genutzt werden.
Mit Hilfe von UTF-8 kann jeder auf der Welt einen Zeichensatz nutzen
und man kann beispielsweise im IRC mit Russen, Koreanern und
Deutschen ohne Kodierungsschwierigkeiten kommunizieren - ohne UTF-8
eine Qual. Außerdem sind viele Sonderzeichen im Zeichensatz
enthalten, etwa mathematische Symbole, wodurch auch
Mathematik- oder anderen Wissenschaftschannels geholfen ist (der
offizielle Channel zum
Wikipedia-Projekt setzt auch auf UTF-8).
Hier noch einige Beispielseiten zu den zu kodierenden Zeichen:
Das hat wohl mehrere Gründe, zum einen gibt es leider noch
Clients, die diesen Zeichensatz nicht unterstützen.
Teilweise ist die Umstellung auch etwas haarig, vor allem bei
Konsolenclients wie irssi unter Linux, wo man auch sein Terminal
entsprechend einrichten muss.
Einige meinen auch, das IRC
sei für UTF-8 nicht geschaffen, was allerdings nicht ganz
nachvollziehbar ist, denn in der Beschreibung des Protokolls (RFC 1459) ist
kein Zeichensatz vorgeschrieben. Hier heißt es unter
2.2:
No specific character set is specified. The protocol is based on a a set of codes which are composed of eight (8) bits, making up an octet. Each message may be composed of any number of these octets; however, some octet values are used for control codes which act as message delimiters.
Hier ist lediglich festgelegt, dass eine Nachricht, die mit dem
IRC-Protokoll geschickt wird, aus kleinsten Einheiten besteht,
die 8 Bit groß sind. Auch wenn vielen – vor allem
Programmierern – dies selbstverständlich erscheint,
so ist es das keineswegs. Wenn man sich den Wiki-Eintrag zu
"Byte"
genauer ansieht, merkt man, dass nicht einmal dieser Begriff
eindeutig definiert ist. Die RFC lässt weiterhin lediglich
erkennen, dass die Schlüsselwörter des Protokolls,
sowie einige Trennzeichen, in ASCII kodiert sind, sodass man
theoretisch von einer handelsüblichen Telnetsitzung im IRC
chatten kann. Da UTF-8 aber den kompletten ASCII-Zeichensatz
enthält, mithin vollständig abwärtskompatibel
ist, stellt das kein Hindernis dar, es im IRC zu nutzen. Es
bleibt also dem User vorbehalten, was er nutzt.
Man mag
auch so argumentieren, dass seit jeher ISO-8859 im IRC genutzt
wurde und das gefälligst auch so bleiben sollte, aber
dieses Argument wirkt eher unbedacht, wenn man sich die Vorteile
von UTF-8 ansieht.
Das liegt oft daran, dass viele Leute nicht wissen, warum
die "Umlaute kaputt sind" oder was UTF-8 ist. Gib den
Leuten einfach den Link zu dieser Seite und sie können sich
darüber informieren und auch umsteigen.
Viele Leute meinen auch, sie würden ihren Zeichensatz einfach
so lassen, bis UTF-8 Standard geworden ist. Das Problem ist, dass
das nicht einfach so passieren wird von einem Tag auf den anderen.
Deshalb, geht mit gutem Beispiel voran und überzeugt die
Leute. :)
UTF-8 bzw. der Zeichensatz Unicode wird in vielen Bereichen
bereits genutzt. Windows beispielsweise benutzt 2 Byte für
die Kodierung von Zeichen mit Unicode (UTF-16).
Auch die Programmiersprache
Java nutzt diesen Zeichensatz. Die Linux-GUI-API GTK nutzt intern
nur UTF-8 und die meisten Distributionen haben ihren Zeichensatz
schon längst darauf umgestellt.
Man darf also damit rechnen, dass Unicode wird sich langzeitlich
in allen Bereichen etablieren wird.
Hier nun die Beschreibung, wie ihr euren Client auf UTF-8 umstellt, jeweils mit Kennzeichnung für Windows und Linux:
<meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" />
Oder, falls ihr nicht grade eine XHTML-Datei schreibt:
<meta http-equiv="Content-Type" content="text/plain; charset=UTF-8">
Ihr solltet die HTML-Datei selber natürlich mit eurem Editor auch als UTF-8 speichern.
Habt ihr zusätzlich noch PHP zur Verfügung, solltet ihr auch noch einen HTTP-Header senden, der den Zeichensatz angibt. Dazu fügt ihr einfach an eine Stelle, wo noch kein Text ausgegeben wurde, folgendes ein:
header('Content-Type: text/html; charset=utf-8');
Um die UTF-8-Darstellung- und Speicherung in vim anzuschalten, ergänzt eure ~/.vimrc durch folgende zwei Zeilen:
set tenc=utf-8
set enc=utf-8
Sowohl bash als auch readline sind erst ab den Versionen 3 bzw. 5 UTF-8 fähig, es ist also nötig, die Programme entsprechend zu updaten.
Geeignet hierzu ist das Tool "recode".
Bei allen gängigen Paketsystemen zu erwerben. Es
beherrscht extrem viele Zeichensätze (einsehbar mit dem Kommando recode -l
), unter anderem auch UTF-8.
Um nun eine komplette Datei oder eine Dateiliste zu konvertieren,
ist folgendes Kommando notwendig:
recode latin-1..UTF-8 *.txt
Statt "*.txt" darf da natürlich auch eine einzelne Datei oder eine Liste stehen.
Hier eine kleine Liste von Links: