2017-06-07 7 views
0

のNVARCHAR2データを読み取る方法私はORACLEデータベースとCakePHPフレームワークを使用しているプロジェクトを持っています。私は、データ型がNVARCHAR2の列を持っています。データベースからデータを読み込もうとすると、「¿¿¿¿¿¿」と表示されます。私が使用していたコードは、私のデータベースに文字セットオラクルからPHPで

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

答えて

0

oci_connectはそうのようなUTF-8のデータを要求していることを確認します:

$conn = oci_connect($username, $password, $conn_string, 'UTF8'); 
で説明したように210

、Oracleクライアントライブラリは自動的に変換を処理します:

キャラクタ・セットがデータベースで使用される文字セットと一致する必要はありません。一致しない場合、Oracleはデータベース・キャラクタ・セットとの間でデータを変換するために最善を尽くします。

結果をUTF-8として出力している限り、文字は正しく表示されるはずです。

+0

@ eddard.starkこれはあなたのためにできましたか? – timclutton