Umstellung UTF8

Maik20

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Ich habe ein Feld einer Tabelle (vorher latin1_general_ci) auf utf8_general_ci umgestellt. Es waren einige Einträge mit Sonderzeichen (ü, ä, ...) enthalten. Öffne ich die Tabelle mit dem phpMyAdmin dann sehe ich die Sonderzeichen auch korrekt.

Auf der Internetseite jedoch werden die Sonderzeichen nicht richtig dargestellt sondern als Kästchen ausgegeben. Für die Seite ist als Encoding UTF-8 eingestellt. Gebe ich mittels PHP einen Text der UTF-8 kodiert ist aus, sehe ich alle Sonderzeichen korrekt.

Ich nehme jetzt an, das die Tabelle beim umstellen auf UTF-8 nicht konvertiert sondern lediglich umgestellt wurde.

Daher die Frage, wie bekomme ich jetzt die "alten" Einträge (latin1_general_ci) in UTF-8 kodiert? Wie gesagt mit dem installierten phpMyAdmin klappts wohl nicht, da hier alles korrekt angezeigt wird (vermutlich anderes Encoding im admin)

Jemand eine Idee?
 
Ja,

auf meiner Webseite ist der Tag korrekt gefüllt.

index.php:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Wie gesagt ein Test mit einer Textdatei (die mit UTF-8 erstellt wurde und per PHP in die Seite eingelesen wurde) wird von der Webseite korrekt wiedergegeben. Im Gegenteil zu einer Seite die ich nicht als UTF-8 erzeugt habe! Genauso wie der Inhalt der DB der vermutlich (bei der Umstellung) nicht in UTF-8 umformatiert wurde.

Ich habe alle Felder einer jeden Tabelle auf UTF-8 umgestellt. Auch die Datenbank (Optionen / Kollation / UTF-8).
 
Eventuell ist deine komplette Datenbank nicht auf UTF-8 eingestellt, sondern nur die Tabelle.

Stell die Verbindung testweise zwanghaft auf UTF8 um mit:

SQL:
SET NAMES 'UTF8'
 
Hi,

gesagt getan. Hat nur leider keinen effekt. Auf der Webseite werden die Zeichen weiterhin nicht dargestellt. Im phpMyAdmin sehe ich die Umlaute korrekt.

Edit:
Der Zeichensatz / Kollation der MySQL-Verbindung steht auch auf utf8_unicode_ci
 
Zuletzt bearbeitet:
Also dort steht ebenso UTF-8.

Meine index.php sieht so aus:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
$rs2 = getRS("SELECT * FROM test");
				$num2 = mysql_num_rows($rs2);
				for ($i2=0;$i2<$num2;$i2++){
					$text = mysql_result($rs2,$i2,"Text");
echo $text;
				}

echo "UTF8 per Include";
include("utf8.txt");
echo "NICHT UTF8 per Include";
include("nichtutf8.txt);
?>
</body>
</html>

Code:
function getRS($sql){
global $db_connect;
    mysql_select_db("XXXXXX",$db_connect);
  	$res = mysql_query($sql,$db_connect) or die ( "<b>Fehler:</b> $sql"); 
 	return $res;
}

Am PHP Part kann es meiner Meinung nach nicht liegen.
 

Neue Beiträge

Zurück