【发布时间】:2013-07-03 21:45:18
【问题描述】:
我有一个关于 MS Access 的数据库,我通过调用 PDO 和 odbc 驱动程序将它与 PHP 一起使用。 我的数据库中有法语、丹麦语和波兰语单词。法语和丹麦语没问题,但没有波兰字符,我只得到“?”而是。
代码如下:
try{
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$dbName; Uid=Admin;Pwd=;");
}
catch(PDOException $e){
echo $e->getMessage();
}
$answer = $db -> query("SELECT * FROM dict_main WHERE ID < 20");
while($data = $answer-> fetch() ){
echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['DK'])) . ' ';
echo iconv("iso-8859-2","utf-8",htmlspecialchars($data['PL'])) . ' ';
echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['FR'])) . ' ';
}
如果有人有想法,请告诉我,因为我的想法已经用完了,而且似乎没有任何效果,或者我是否应该提供有关我没有想到的问题的更多信息。
【问题讨论】:
-
您是否尝试过其他 php 函数来对会话进行编码,例如 mb_convert_encoding ?
-
是的,不幸的是同样的结果
-
你的 php 版本是什么,你访问数据库的编码是什么? (我认为访问总是使用 utf-8)
-
php 版本 5.3.13,对于 access-database 的编码,我不知道在 Access 中哪里可以找到这些信息(我使用 Access 2013)
标签: php sql ms-access iso-8859-1 iso-8859-2