我有一个关于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'])) . ' ';
}
如果有人有想法,请告诉我,因为我用完了,似乎什么都没有用,或者我是否应该提供更多关于我没有想到的问题的信息.
解决方法:
它看起来像htmlspecialchars()
does not support ISO-8859-2.所以它可能会破坏$data [‘PL’]的内容,然后才能进入iconv().
首先尝试将输入字符串转换为UTF-8,然后将htmlspecialchars()应用于UTF-8字符串:
echo htmlspecialchars( iconv("iso-8859-2", "utf-8", $data['PL']) );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。