Das Problem
Das Problem besteht darin, dass Umlaute mit Fragezeichen dargestellt werden, welche aus ODBC-Abfragen kommen.
Die Webseite selbst ist auf UTF-8 eingestellt:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Auch die HTML- bzw. PHP-Datei (also das File selbst) ist UTF-8 ohne BOM gespeichert.
Lösung für Sybase SQL Anywhere
Für folgendes Beispiel hat es funktioniert:
$ergebnis = odbc_exec($odbc, $SQL);
$zeile = "";
while($row = odbc_fetch_array($ergebnis))
{
$id = $row['strid'];
$text = $row['strtext'];
//echo "$id | $text<br>";
$zeile = $zeile . "|" . $id . "," . $text;
}
$zeile = substr($zeile,1);
header('Content-type: text/html; charset=ISO-8859-1');
echo $zeile;
Entscheidend ist die header Zeile.
Kommentar schreiben