簡體   English   中英

從ISO-8859-2轉換為ORACLE字符集AL16UTF16

[英]Convert from ISO-8859-2 to ORACLE char set AL16UTF16

您好,這是昨天的后續調查,

我有一個解析網站的PHP腳本。 我現在要在UTF-8中獲取字符串,我想將這些字符串插入使用以下代碼的Oracle數據庫中:

NLS_NCHAR_CHARACTERSET = AL16UTF16
NLS_CHARACTERSET = EE8ISO8859P2

我已經嘗試過:

$rep = iconv("UTF-8","AL-16UTF-16",$string);      

//失敗-產生?? 數據庫或腳本中的錯誤因“錯誤的字符集”而失敗

我也嘗試過

$rep = iconv("UTF-8","ISO-8859-2",$string);
$rep1 = iconv("UTF-8","AL-16UTF-16",$rep); 

與上述相同...失敗?? 在數據庫中。

有人知道下一步該怎么做嗎?

OCI驅動程序隱式處理字符集轉換。 連接時,請確保將字符集設置為UTF-8

oci_connect($username, $password, $connection_string, 'UTF-8');

這告訴OCI期望您提供從數據庫字符集轉換的UTF8格式的字符串和UTF8的結果集。 手冊 (重點是我的):

確定Oracle客戶端庫使用的字符集。 字符集不需要與數據庫使用的字符集匹配。 如果不匹配,Oracle將盡最大努力在數據庫字符集之間來回轉換數據。 根據字符集,這可能不會給出可用的結果。 轉換也增加了一些時間開銷。

這意味着,假設您要輸入的字符串位於UTF8中,則根本不需要使用iconv() 只需讓OCI為您處理即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM