我補充說,oracle database
阿拉伯語字符集返回一個值的函數, 但是當我運行我的程序價值在文本框中顯示出來是這樣的c#文本框返回未知字符?
「敔璸潂X」中國人還是日本人性格
。要返回的值是阿拉伯字符。 我試圖將文本框更改爲從右到左,但它沒有幫助。 我試圖將存儲的值更改爲英文,但同一個字符正在返回。
有什麼建議嗎?
public void Get_Desc()
{
string oradb = "Data Source=schema;User Id=user;Password=pwd;";
string CommandStr = "F_Get_Office_Desc";
using (OracleConnection conn = new OracleConnection(oradb))
using (OracleCommand cmd = new OracleCommand(CommandStr, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("iCode", OracleDbType.Varchar2).Value = Current_code;
cmd.Parameters.Add("oDesc", OracleDbType.Varchar2, 4).Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();
Current_Desc.Text = cmd.Parameters["oDesc"].Value.ToString();
}
}
您正在使用錯誤的列類型,'VARCHAR2'不能表示阿拉伯語,請確保它的'NVARCHAR2'。 –
當你的數據庫的字符集是'AL32UTF8'(或類似的),那麼'VARCHAR2'可以代表阿拉伯字符。 –
你的環境變量'NLS_LANG'的價值是什麼?如果未設置,您的註冊表項「HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_ {Oracle-Home} \ NLS_LANG」的值是多少? 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ORACLE \ {KEY_ Oracle的主頁} \ NLS_LANG'? –