如何使用php

时间:2017-06-07 10:31:39

标签: php oracle

我有一个项目,我正在使用ORACLE数据库和CakePHP框架。我有一个数据类型为NVARCHAR2的列。如果我尝试从数据库中读取数据,我会得到“¿¿¿¿¿”。我正在使用的代码是

ociexecute($stid, OCI_DEFAULT);     
$i = 0;
$result = array();
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {         
       foreach ($row as $key => $value) {
                $result[$i][$key] = $value;
            }
            $i++;
}

我的数据库中的Charset是 -

  

NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA   NLS_CHARACTERSET WE8MSWIN1252

1 个答案:

答案 0 :(得分:0)

确保oci_connect正在请求UTF-8中的数据,如下所示:

$conn = oci_connect($username, $password, $conn_string, 'UTF8');

manual中所述,Oracle客户端库将自动处理转换:

  

字符集不需要与数据库使用的字符集匹配。如果不匹配,Oracle将尽力将数据转换为数据库字符集或从数据库字符集转换数据。

只要您将结果输出为UTF-8,字符就应该正确呈现。