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;
}