Problema de codificação de caracteres com PDO_ODBC

Ao acessar um banco de dados Microsoft SQL a partir do PHP usando PDO_ODBC com o código a seguir, tenho um problema de codificação. Quando emitido, o texto do banco de dados é ilegível.

$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);

saída ilegível http://image.bayimg.com/naomcaacd.jpg

Isso é feito a partir de um módulo Drupal. Tudo no Drupal é feito para funcionar com UTF-8. A solução mais limpa seria conseguir recuperar os dados do banco de dados em UTF-8 ou convertê-los em UTF-8 antes da saída.

Eu tentei isso sem nenhum sucesso

$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') depois denew PDO(...)$pdo->exec('SET CHARACTER SET utf8'); depois denew PDO(...)

PS: O código está atualmente desenvolvido no Windows, mas também deve funcionar no GNU / Linux.

questionAnswers(4)

yourAnswerToTheQuestion