GA Gästebuch und UTF-8

Das Gästebuchscript ist mit dem Zeichensatz ISO-8859 geschrieben. Wenn Sie das Gästebuch in eine Webseite, die das Zeichenformat UTF-8 nutzt includieren führt das dazu, dass Sonderzeichen nicht richtig dargestellt werden. Damit alle Zeichen richtig dargestellt werden, müssen Sie ein paar Veränderungen vornehmen die ich hier einmal ausführlich beschreibe.

Wichtig: Die Änderungen müssen Sie nur vornehmen, wenn das Gästebuch in Ihre Webseite includiert wird. Wenn Sie es per IFrame oder Frame einbinden, ist es nicht notwendig diese Anpassungen durchzuführen, da das Gästebuch mit dem ISO-8859 Zeichensatz für sich selbst funktioniert.

Es wird davon ausgegangen, dass die Hinweise zum includieren des Scriptes beachtet wurden.

 

Schritt 1 - Dateien in UTF-8 abspeichern

Der erste Schritt ist, dass sie alle .php und alle .tpl Dateien in einem Editor öffnen, das Zeichenformat in UTF-8 umstellen und die Dateien wieder abspeichern. Nicht jeder Editor kann dies. Ich nutze dafür Notepad 2.

 

Schritt 2 - PHP-Dateien Content-Type zuweisen

Öffnen Sie die .php Dateien gb.php, admin.php, functions.php, memory.php und captcha.php und fügen Sie direkt unterhalb der Zeile <?php eine Zeile mit folgendem Code ein:

header('Content-Type: text/html; charset=utf-8');

 

Schritt 3 - Meta-Angabe im Admin-Template ändern

Öffnen Sie die Datei adminheader.tpl und ersetzen Sie die Zeile

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">

im HEAD-Bereich, durch folgende Angabe

<meta http-equiv="content-type" content="text/html; charset=utf-8">

ein.

 

Schritt 4 - Formatierung der Funktion htmlentities() und html_entities_decode() anpassen

Öffnen Sie die Datei gb.php und suchen Sie die Zeile mit dem Inhalt:

$text = htmlentities(trim($text), ENT_QUOTES, "ISO-8859-15");

ersetzen Sie die Zeile mit folgendem Inhalt:

$text = htmlentities(trim($text), ENT_QUOTES, "UTF-8");

suchen Sie nun die Zeile mit dem Inhalt:

$wert[6]=html_entity_decode($wert[6], ENT_QUOTES, "ISO-8859-15");

ersetzen Sie die Zeile mit folgendem Inhalt:

$wert[6]=html_entity_decode($wert[6], ENT_QUOTES, "UTF-8");