Ralf König: Umlaute werden zu ?

Beitrag lesen

Da vermutlich keine Verbindungskodierung eingestellt wurde, geht MySQL von Latin1 aus und kodiert den ankommenden Bytestrom in die Feldkodierung um. Rückwärts macht es das umgekehrt und du siehst wieder UTF-8. Normal ist das nicht, denn dabei geht dir Funktionalität (Stringfunktionen, Sortierung und Vergleiche arbeiten nicht richtig) und Spicherplatz (je ein Zeichen für jedes UTF-8-Byte) verloren. Die Folge ist unkorrektes Arbeiten und Datenverlust.

Ich habe meine db_connect.php um die letzten zwei Zeilen ergänzt:

<?php  
$dbHost = "localhost";  
$dbUser = "ww5231";  
$dbPass = "XXXXXX";  
$dbName = "urw_ww5231";  
  
$connect = mysql_connect($dbHost, $dbUser, $dbPass) or die("keine verbindung");  
  
$selectDB = mysql_select_db($dbName, $connect) or die ("keine datenbank");  
  
mysql_query("SET NAMES 'utf8'");  
mysql_query("SET CHARACTER SET 'utf8'");  
?>

Seither werden Umlaute auf der Website, als auch in der DB richtig dargestellt.

Ist das denn nun so richtig?