UTF-8 SELECT IBM i DB2 through unixODBC php PDO Debian 9 in CLI php。

问题描述 投票:0回答:1

我有一个问题,非常非常挑剔。

我有一个LAMP服务器,通过unixODBC连接到IBM i(AS400)。PHP通过IBM i的ODBC连接在IBM i上执行sql,我想在我的数据库中做一个简单的SELECT。

我想在我的数据库中做一个简单的SELECT。当我的记录里有特殊字符如:劐 é à @等时,PDO返回NULL。而当我在我的Web浏览器中执行这个脚本时,所有的特殊字符都是正常的。

我不明白为什么。我在我的DSN PDO连接中加入了'CHARSET=UTF-8'。

我认为这个错误与.NET Framework 2.0有关。iSeries Access ODBC Driver with unixodbc on Debian - Invalid UTF-8 characters being returned from iSeries。 因为当我用HEX(field)进行SELECT时,我从浏览器和CLI中得到的是六进制。

PHP最新版本(7.4.6),Debian 9。

php mysql db2 ibm-midrange unixodbc
1个回答
0
投票

根据评论线程,问题的原因是当从命令行shell和php CLI运行时,shell没有正确地配置UTF-8以适应正确的地域(国家等)。

© www.soinside.com 2019 - 2024. All rights reserved.