Zeichencodierungsproblem mit PDO_ODBC

Wenn ich mit PDO_ODBC und dem folgenden Code von PHP auf eine Microsoft SQL-Datenbank zugreife, habe ich ein Codierungsproblem. Bei der Ausgabe ist der Text aus der DB verstümmelt.

$dsn = "odbc:DRIVER={SQL Server};SERVER=$hostname;DATABASE=$database;charset=UTF-8";
$pdo = new PDO($dsn,$username,$password);
$sql = "SELECT text FROM atable";
$result = $PDO->query($sql);
while($data = $result->fetchObject()){
  $values[] = $data->text; 
}
dpm($values);

garbled output http://image.bayimg.com/naomcaacd.jp

Dies geschieht über ein Drupal-Modul. Alles in Drupal funktioniert mit UTF-8. Die sauberste Lösung wäre, die Daten in UTF-8 aus der Datenbank abzurufen oder vor der Ausgabe in UTF-8 zu konvertieren.

Ich habe es ohne Erfolg versucht

$dsn = "odbc:DRIVER={SQL Server};SERVER=$hostname;DATABASE=$database;client_charset=utf-8"$dsn = "odbc:DRIVER={SQL Server};SERVER=$hostname;DATABASE=$database;charset=utf-8"$pdo->exec('SET NAMES utf8') nachnew PDO(...)$pdo->exec('SET CHARACTER SET utf8'); nachnew PDO(...)

PS: Der Code ist derzeit unter Windows entwickelt, muss aber auch unter GNU / Linux funktionieren.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage