Auge: Ausgabe von DB-Abfragen in UTF-8

Beitrag lesen

Hallo

MySQL-DB ursprünglich mit Kollation 'latin1_swedish_ci' für Datenbank, Tabelle und Felder.

HTML-Skript ursprünglich im head: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">

Beispiel: Eintrag mit "äöüß" in "alte" DB mit Kollation 'latin...' gemacht. Kollation für DB, Tabelle und Feld auf 'utf8_unicode_ci' geändert. In HTML-Seite ist im meta-tag charset=utf-8 angegeben.

Trotzdem stehen da hartnäckig ���� statt äöüß.

Was mache ich wohl falsch? Bzw. wie muss ich das anders angehen?

Das Problem ist, dass in die alten Datensätze in der DB immer noch mit ISO-8859-15 kodiert sind. Die Seite wird (offensichtlich mit utf-8 ausgeliefert und die Inhalte aus der DB haben nun nicht mehr die passende Kodierung.

Direkt nach dem Aufbau der Verbindung mit dem DB-Server kannst du dem Server den gewünschten Zeichensatz mitteilen. Beispielsweise mit folgender Funktion:

function connect_dbserver($db) {  
# Datenbankserver kontaktieren  
$s = mysql_connect($db["host"],$db["user"],$db["pass"]);  
# Datenbank auswählen  
$t = mysql_select_db($db["dbase"],$s);  
if ($s===false or $t===false)  
   {  
   # Server konnte nicht kontaktiert werden bzw.  
   # Datenbank konnte nicht ausgewählt werden.  
   return false;  
   }  
else  
   {  
   # Teile dem DB-Server mit, dass er die Ergebnisse  
   # der Abfragen in utf-8 ausliefern soll.  
   $q = "[code lang=sql]SET NAMES utf8
~~~";  
   $a = mysql\_query($q,$s);  
   if ($a===false)  
      {  
      # Abfrage ist fehlgeschlagen  
      return false;  
      }  
   else  
      {  
      # Absetzen des Queries war erfolgreich,  
      # es wird die Verbindungskennung zur weiteren  
      # Verwendung aus der Funktion zurueckgegeben.  
      return $s;  
      }  
   }  
} # Ende: connect\_dbserver($db)[/code]  
  
Alle später im Skript ausgeführten Abfragen werden nun, unabhängig von ihrer in der DB vorliegenden Kodierung, in utf-8 zurückgegeben.  
  
Tschö, Auge  

-- 
Die deutschen Interessen werden am Liechtenstein verteidigt.  
  
[Veranstaltungsdatenbank Vdb 0.2](http://termindbase.auge8472.de/)