【问题标题】:How to read NVARCHAR2 Data from oracle with php如何使用 php 从 oracle 读取 NVARCHAR2 数据
【发布时间】:2017-06-07 10:31:39
【问题描述】:

我有一个项目,我正在使用 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++;
}

我的数据库中的字符集是 -

NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CHARACTERSET WE8MSWIN1252

【问题讨论】:

    标签: php oracle


    【解决方案1】:

    确保oci_connect 以 UTF-8 格式请求数据,如下所示:

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

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

    字符集不需要匹配数据库使用的字符集。如果不匹配,Oracle 将尽最大努力将数据与数据库字符集相互转换。

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

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2013-07-20
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2014-10-02
      • 2014-02-27
      相关资源
      最近更新 更多