PHP 连接 Oracle 设置编码问题
通过 Navicat 连接到数据库
查询当前 Orace 编码
select userenv('language') from dual;
获取到结果是 AMERICAN _ AMERICA. ZHS16GBK
连接 Oracle
new \PDO('oci:dbname=//192.168.1.1:1521/ORCL;charset=ZHS16GBK', 'system', 'pass');
解决查询到的中文数据乱码
$items[]; // 查询到的结果集
while($row = $conn->fetch(PDO::FETCH_ASSOC))
{
foreach($row as &$value)
{
$value = mb_convert_encoding($value, 'UTF-8', 'ZHS16GBK'); // 将其数组子值转换为 UTF8 编码
}
unset($value);
$items[] = $row;
}
Comments