Podczas uzyskiwania dostępu do bazy danych programu Microsoft SQL z PHP przy użyciu PDO_ODBC z następującego kodu, Mam problem kodowania. Po wyprowadzeniu tekst z DB jest zniekształcony.kodowania znaków problem z PDO_ODBC
$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.jpg
to odbywa się z modułu Drupal. Wszystko w Drupal zostało stworzone do pracy z UTF-8. Najczystszym rozwiązaniem byłoby pobranie danych z bazy danych w UTF-8 lub konwersja UTF-8 przed wyprowadzeniem.
Próbowałem je bez powodzenia
$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')
ponew PDO(...)
$pdo->exec('SET CHARACTER SET utf8');
ponew PDO(...)
PS: Kod jest obecnie rozwijany w systemie Windows, ale to ma pracować także nad GNU/Linux.
Gdybym użyć konfiguracji ODBC tylko i połączyć z PHP PDO ODBC, nie mogę dostać UTF-8 danych. –