使用PDO_ODBC使用以下代码从PHP访问Microsoft SQL数据库时,存在编码问题。当输出数据库中的文本出现乱码时。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
这是从一个Drupal模块来完成。 Drupal中的所有东西都可以与UTF-8一起工作。最简洁的解决方案是能够以UTF-8格式从数据库中检索数据或在输出之前将其转换为UTF-8格式。
我想这些没有任何成功
$dsn = "odbc:DRIVER={SQL Server};SERVER=$hostname;DATABASE=$database;charset=utf-8"
$pdo->exec('SET NAMES utf8')
后
$dsn = "odbc:DRIVER={SQL Server};SERVER=$hostname;DATABASE=$database;client_charset=utf-8"
$pdo->exec('SET CHARACTER SET utf8');
后new PDO(...)
new PDO(...)
PS:代码当前developped在Windows,但它具有也可以在GNU/Linux上工作。
如果我使用的唯一的ODBC的配置和使用PHP PDO ODBC进行连接,我不能让UTF-8的数据。 – 2016-11-14 23:32:09