Zur Navigation

PHP/MySQL - HTML : Chinesisch und Russisch mit UTF8 [2]

11 Christian (Gast)

In phpMyAdmin stimmt es alles. Nur nach der Abfrage von meinem script verändert es sich.
Hier mal mein code:
// Übertragungskodierung wählen
mysql_query("SET names 'utf8'");
// Seiteninhalt laden
$pagedaten[$lang]="Verbindungsfehler: Daten konnten nicht geladen werden";
$query="SELECT * FROM samo_content WHERE page='{$page}'";
if(!$pageout=@mysql_query($query))
{
	$text="Verbindungsfehler: Tabelle oder Datensatz existiert nicht";
	// Design laden
	include("design.html");
	exit();
}
// $pagedaten die Seiteninhalte zuweisen
$pagedaten=mysql_fetch_assoc($pageout);
$text=nl2br($pagedaten[$lang]);

16.08.2007 21:06

12 Rudy

In phpMyAdmin stimmt es alles.
Das heißt, in der DB ist es ok. Also liegt es an der Ausgabe, vielleicht an einer Funktion, die Du auf den Text anwendest. Aus dem Code sehe ich aber nicht, wo Du das echo machst. nl2br... hm. Funktioniert es, wenn Du das weglässt und einfach

echo htmlspecialchars(stripslashes($pagedaten[$lang]));

machst?

16.08.2007 21:19

13 Christian (Gast)

Nein funktioniert nicht. Leider :(

16.08.2007 21:22

14 Rudy

Und so?

echo htmlspecialchars(stripslashes(utf8_decode($pagedaten[$lang])));
Ich hab gerade das Testskript von damals gesucht, leider ohne Erfolg. Die Kollation der Datenbank (also nicht nur von der Tabelle) ist auch utf8? Das findest Du in PHPMyAdmin unter 'Operationen', wenn Du in der Tabellenübersicht bist (Klick auf den Datenbanknamen).

16.08.2007 21:35 | geändert: 16.08.2007 21:38

16 Rudy

In design.html hast Du noch

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Das heißt, der Browser erwartet sich ISO-Zeichen. Funktioniert es, wenn Du das abänderst in

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
und design.html utf8-kodiert abspeicherst?

16.08.2007 21:48

17 RikuMaster

wie speicher ich das utf8-kodiert ab? Mit dem meta-tag utf-8 gings nicht, deshalb hab ich den meta-tag aus diesem forum versucht weil hier geht es ja mit russischen zeichen

16.08.2007 21:51

18 Rudy

ich habe jetzt Dein Skript an meine DB angepasst (lokal, MySQL5, utf8) und die Tabelle 'samo_content' angelegt, mit dem Feld 'page' = 'home' und 'ru'='Добро пожаловать' (daten eingetragen über PHPMyAdmin) und laufen lassen in Firefox 2.0 und es funktioniert. Wenn ich aber dort manuell die Kodierung (Ansicht->Zeichenkodierung) umändere in "Westlich ISO..." dann kommt das heraus: Добро пожаловать

In welchem Browser testest Du das?

Gott, bei dem Geteste kommt der Ärger wieder hoch, den mir damals diese internationale Seite bereitet hat :) Würde mich aber nun brennend interessieren, warum Dein Skript nicht will.

16.08.2007 22:09 | geändert: 16.08.2007 22:12

19 RikuMaster

Unter Ubuntu 7.04 Firefox

16.08.2007 22:12

20 Rudy

Unter Ubuntu 7.04 Firefox

Same here. Was zeigt der Firefox unter Ansicht->Zeichenkodierung wenn Du testest?

16.08.2007 22:13 | geändert: 16.08.2007 22:14