hotti: Sonderzeichen

Beitrag lesen

moin,

Wie ihr aus meiner folgenden Beschreibung wahrscheinlich gleich erkennen werdet bin ich ziemliche Anfängerin...

Es gibt für alles ein "Erstesmal". Jeder Webserver generiert einen HTTP-Header mit einem DefaultCharset. Genau hier musst Du eingreifen, denn das ist nicht immer das was Du willst. Wenn alle Seiten dieselbe Kodierung (1) utf-8 haben sollen, schreib in die .htaccess:

AddDefaultCharset UTF-8

Falls das (1) nicht der Fall ist, lege das im jeweiligen Script PHP oder Perl mit der header() Funktion fest. Dazu ist eine globale Variable ganz hilfreich, ich mache das einfach so:

Perl => $ENV{'charset'} = 'utf-8';
PHP  => $_SERVER{'charset'} = 'utf-8';

also in das globale Array der Serverumgebung, dafür gibts bei mit für Perl/PHP jeweils eine Basis-Library, wo das reinkommt (2). Desweiteren muss charset auch im Kopf einer jeden HTML-Datei deklariert sein:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

und das muss mit dem charset im HTTP-Header überinstimmen. Dafür sorgt sowohl die header() Funktion (HTTP) als auch eine eigene Funktion, die den HTML-Header erzeugt.

(1)(2) definiere für jede Seite eine Tabelle, wo deren Eigenschaften festgelegt sind, eine der Eigenschaften ist die Zeichenkodierung.

Bei PHP musst Du aufpassen, dass der Parser nicht eigenständig einen header feuert, das macht der nämlich, wenn außerhalb <?php ?> was steht, und das kann schon ein Leerzeichen oder eine Leerzeile bewirken, auch in den Dateien, die mit include() eingebunden werden.

Hotti