Mittwoch, 13. August 2008

Chinesische Schriftzeichen in HTML Webseiten

Irgendwann kommt immer ein Augenblick im Leben eines Webmasters, wo ein Kunde seine Webseite auch in einer anderen Sprache darstellen möchte. Sofern es sich hierbei um für in der westlichen Welt "normale" Sprachen handelt, ist das kein Problem. Aber sobald es darum geht, die Seiten in einem anderen Zeichensatz darzustellen, wirds schwierig. Zunächst eine kleine Hitliste:

  • arabische Schrift in HTML (Arabisch)
  • chinesische Schrift in HTML (Chinesisch)
  • japanische Schrift in HTML (Japanisch)
  • koreanische Schrift in HTML (Koreanisch)
  • asiatische Schriften in HTML
  • kyrillische Schrift in HTML (Kyrillisch)
  • weitere: Polnisch, Tschechisch, Hebräisch, uvm.
Wie man das jetzt im Einzelnen umsetzt, möchte ich an einem Beispiel beschreiben. Das eingesetzte Computersystem basiert auf Windows XP (de), und die vom imaginären Kunden gelieferten Dateien für eine chinesische Webseite liegen im Word-Format (.doc) vor. Als Texteditor verwende ich den beliebten Open Source Editor "Notepad++". Zwar lässt sich selbst der normale Windows-Editor dafür verwenden (beim Speichern als Kodierung UTF-8 auswählen), aber wer einmal einen ordentlichen Editor verwendet hat, der will den Windows-Krüppel nicht mehr anfassen.

Die erste Hürde ist der Windows-Zeichensatz. Wenn man sein System noch nicht vorbereitet hat, dann kann man die Word- oder Textdatei öffnen und sieht noch keine chinesischen Zeichen, sondern nur Fragezeichen, Kästchen oder sonstiges, unlesbares Kuddelmuddel. Daher muss zunächst der passende Zeichensatz nachinstalliert werden. Dies funktioniert in der Systemsteuerung über den Punkt "Regions- und Sprachoptionen". Dort gibt es unter dem Reiter "Sprachen" ein Kästchen "Dateien für ostasiatische Sprachen installieren".

Dieser Haken muss gesetzt werden. Dadurch wird der Installationsprozess für die Sprachkomponenten in Gang gesetzt. Windows wird irgendwann nach der Windows-Installations-CD fragen - halten Sie sie also bereit. Nach erfolgter Installation und einem Neustart sollten die Word-Dateien endlich lesbar sein.

Wenn die Übersetzung nicht als Word- sondern als normale UTF-8-Text-Datei geliefert worden sein sollte, dann sollten die Schriftzeichen hierin nun auch lesbar sein. Ich persönlich empfehle spätestens an diesem Punkt immer, den Text aus Word raus in eine normale Textdatei zu kopieren. Dadurch gehen zwar die Formatierungen verloren, aber andererseits vermeidet das andere Probleme, auf die ich hier jetzt nicht eingehen will.

Öffnen Sie jetzt ihren Notepad++ und fügen Sie den Inhalt aus der Word-Datei dort ein. Wichtig an dieser Stelle: das Textformat. Stellen Sie hier über das Hauptmenü "Format" den Wert "UTF-8" ein. Die Datei wird als UTF-8 kodiert abgespeichert. So haben Sie nun die Texte für die Internetseite passend vorbereitet. Jetzt müssen die Seiten selber bearbeitet werden. Die chinesischen Texte können praktisch direkt aus der Textdatei hier reinkopiert werden. Wichtig: auch die HTML-Seite muss als UTF-8-kodiert abgespeichert werden.

Damit die Seiten nun aber auch im passenden Zeichensatz ausgegeben werden können, muss noch ein META-Tag im <head>-Bereich der HTML-Datei angepasst oder hinzugefügt werden. Der sog. Content-Type muss folgendermaßen festgelegt werden:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Dadurch teilen wir dem Browser mit, dass nun UTF-8-Daten kommen. Jetzt noch abspeichern und fertig. Wenn alles problemlos abgelaufen ist, sollten die Inhalte der Webseite nun in chinesisch auftauchen. Das wäre soweit die einfachste Methode mit dem geringsten Aufwand.

Für bestimmte Zwecke empfiehlt es sich aber, die Zeichen nicht im Klartext sondern direkt als HTML-Code (sog. HTML Entities) zu hinterlegen. Beispielsweise, wenn die Texte aus einer Datenbank ausgelesen werden, die kein UTF-8 unterstützt. Für die Umwandlung in HTML-Code gibt es aber auch Mittel und Wege. Früher habe ich dafür immer die Word-Datei als HTML abgespeichert und da dann die Passagen wieder herauskopiert. Aber das sollte man nur in Ausnahmefällen machen, denn man handelt sich dadurch zu viel Müllcode ein. Einfacher ist es, wenn man einfach die PHP-Funktion "htmlentities()" verwendet. Man schickt einen String dort rein und bekommt diesen String dann als HTML-Code wieder heraus. Einfach und praktisch kann man das beispielsweise auf www.functions-online.com ausprobieren bzw. verwenden. Der hierdurch erzeugte Quellcode lässt sich nun bequem an den entsprechenden Stellen im HTML-Dokument einfügen.

Keine Kommentare: