【发布时间】:2021-04-16 16:05:14
【问题描述】:
我的桌子:
+--------+----------+
| U_COD | U_NAME |
+--------+----------+
| 01 | Daniel |
+--------+----------+
| 02 | Ñandu |
+--------+----------+
| 03 | Pañ |
+--------+----------+
我正在连接并对我的 firebird 数据库进行简单查询,如下所示:
$host = 'firebird:dbname=my/dir/db_test.gdb;charset=UTF8';
$password = 'mypass';
$username = 'myuname';
try{
$db = new PDO($host, $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo "Failed: " . $e->getMessage();
}
$getData=$db->prepare("SELECT * FROM T_TEST ORDER BY U_NAME ASC");
$getData->execute();
$arrData=$getData->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($arrData);
但是当我运行该文件时,我的数据库中包含一些“ñ”字母的所有值都显示为空,如下所示:
[
{"U_COD":"01","U_NAME":"Daniel"},
{"U_COD":"02","U_NAME":null},
{"U_COD":"03","U_NAME":null}
]
我想知道我做错了什么,如果您需要我的 firebird 数据库中的任何其他详细信息,请告诉我。
编辑
var_dump($arrData) 显示值,但在应该有“ñ”字母时使用“�”:
array(3) {
[0]=>
array(2) {
["U_COD"]=>
string(2) "01"
["U_NAME"]=>
string(6) "Daniel"
},
array(2) {
["U_COD"]=>
string(2) "02"
["U_NAME"]=>
string(5) "�andu"
},
array(2) {
["U_COD"]=>
string(2) "03"
["U_NAME"]=>
string(3) "Pa�"
}
}
【问题讨论】:
-
@RiggsFolly 好的,我已经尝试了这些解决方案,但没有人解决我的问题,可能是 Firebase 问题。
-
也许这应该是我的第一个问题:¿ php+pdo+firebase utf8 兼容吗?
-
您是否阅读了 firebird 标签信息...。请在所有问题中引用您的 firebird 版本
-
查看右侧的“聊天”列以及用于诊断不同 PHP 和 Firebird 方面的字符集设置的查询topanswers.xyz/databases?q=1462
标签: php pdo firebird firebird2.5