我有一个项目,我正在使用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
答案 0 :(得分:0)
确保oci_connect
正在请求UTF-8中的数据,如下所示:
$conn = oci_connect($username, $password, $conn_string, 'UTF8');
如manual中所述,Oracle客户端库将自动处理转换:
字符集不需要与数据库使用的字符集匹配。如果不匹配,Oracle将尽力将数据转换为数据库字符集或从数据库字符集转换数据。
只要您将结果输出为UTF-8,字符就应该正确呈现。