Themen:Zeichencodierung

Aus SELFHTML

Diese Seite ist momentan eine Baustelle im Zustand: 1

Wird bearbeitet von: dedlfix
Hilfe zum Bearbeitungsstatus: Hilfe:Status eines Artikels

ToDo:

Hier soll das Zusammenspiel von (vorwiegend) im Webumfeld vorhandenen Systemen und deren Konfiguration dargestellt werden. Wie teilt ein System dem anderen mit, welche Kodierung es verwendet und wie wird das konfiguriert.


Inhaltsverzeichnis

Einleitung

Im Web arbeiten verschiedene Systeme zusammen, um letzlich dem Anwender ein Ergebnis auf seine Anfrage zu liefern. Im einfachsten Fall liefert ein Webserver ein Dokument an einen Browser aus. Komplexer wird es, wenn der Webserver die Abarbeitung des Requests an ein CGI-Programm oder ein eingebettetes System, beispielsweise PHP, delegiert und dieses ein Datenbanksystem ansprechen muss, um die geforderten Daten abzufragen. Das ergibt eine Kette Browser → Webserver → PHP → Datenbanksystem und dazu den Rückweg. Damit der Datenaustausch zwischen allen beteiligten Systemen reibunglos ablaufen kann, gilt es generell zu beachten:

  • Jedes beteiligte System muss mit der gewünschten Codierung umgehen können, es sei denn, es reicht die Daten nur unverändert durch.
  • Zwischen zwei Systemen muss Klarheit über die zu verwendende Codierung herrschen.

Sobald eines der Systeme nicht mehr genau weiß, wie es einen ankommenden Datenstrom zu interpretieren hat, kann es zu Verarbeitungs- und anderen Folgefehlern kommen. Das Ergebnis ist dann meist ein Zeichendurcheinander. Im Folgenden soll beschrieben werden, wie die Systeme selbst konfiguriert werden können, und wie sie dem jeweils benachbarten System die verwendete Zeichencodierung mitteilen.

Beachten Sie auch die allgemeine Einführung zum Thema Zeichencodierung und geschriebene Sprache.

Webdokumente

Wie die Zeichencodierung von HTML- und CSS-Dokumenten festgelegt wird und die Notation von Zeichen beschreibt der Abschnitt Themen:Zeichencodierung/Webdokumente.

Webserver

Die bei der Kommunikation zwischen Webservern und Clients (Browsern) zu beachtenden Gegebenheiten werden im Abschnitt Themen:Zeichencodierung/Webserver behandelt.

Apache

W3C: Einstellung der Zeichencodierungsangabe ('charset') in .htaccess

Browser

Für einen Browser ist es – wie für jedes System, das Daten empfängt – nicht möglich, die Zeichencodierung eines Datenstroms zweifelsfrei zu erkennen. Es ist wichtig, dass der Absender die verwendete Zeichencodierung angibt, damit der Empfänger nicht raten muss oder die Bytewerte nach einer (möglicherweise nicht passenden) Default-Einstellung interpretiert. Deklarieren Sie deshalb stets die Zeichencodierung wie in den Abschnitten Webserver und Webdokumente beschrieben.

Programmiersysteme

PHP

Multibytecodierungen wie etwa UTF-8 müssen spezielle behandelt werden (mb_-Funktionen).

Datenbanksysteme

MySQL

Die Kommunikation mit dem MySQL-Server erfordert ebenfalls eine Beachtung der Zeichencodierung. Der Abschnitt Themen:Zeichencodierung/MySQL beschreibt weiterhin, wie MySQL intern mit Zeichen und deren Codierung umgeht.

Editoren