dedlfix: Array in UTF-8 kodieren

Beitrag lesen

echo $begrüßung;

Meine DB-Abfrage gibt mir doch schon Datensätze als Array.
$array = array();
while($foo = mysql_fetch_assoc($query)){  // $query ist eine gültige MySQL-Abfrage
    $array = array_push($array, $foo);    // mit Ergebnis, nicht NULL

Anmerkung zwischendurch: array_push() solltest du nicht verwenden, wenn es ein $array[] = ... auch tut. Zudem ist deine Verwendung fehlerhaft.

}
print_r($array);

Ich dachte, du kannst erst auf höherem Level auf die Daten zugreifen. Aber wenn du sogar noch händisch mit den mysql_*-Funktionen arbeitest, dann hast du doch volle Kontrolle über die Datenbankverbindung, kannst (MySQL ab 4.1 vorausgesetzt) die Zeichenkodierung der Verbindung selbst bestimmen und bekommst die Werte gleich von MySQL UTF-8-kodiert geliefert, weil MySQL bereits die Felddaten umkodiert. mysql_set_charset() bzw. ein SET NAMES-Statement reicht und deine Sorgen sind keine mehr.

Wenn das nicht geht, dann kannst du an der obigen Code-Stelle ansetzen.

$result = array(); // Ergebnis-Array
  while ($dbRecord = mysql_fetch_assoc($query)) {
    $oneRecord = array();
    foreach ($dbRecord as $key => $value)
      $oneRecord[utf8_encode($key)] = utf8_encode($value);
    $result[] = $oneRecord;
  }

echo "$verabschiedung $name";