轉:Oracle數據庫sqlplus與plsqldev解決亂碼

問題描述 :sql

  在用eclipse使用jdbc插入中文數據的時,數據用plsqldev查詢時,正常顯示中文,可是用sqlplus查詢時,爲中文亂碼,當用plsqldev直接插入中文時,也直接會出現亂碼,用sqlplus插入的中文,plsqldev讀出亂碼---> plsqldev與sqlplus出現亂碼不一致狀況數據庫

解決    :eclipse

  1)使用查詢語句編碼

1
select  from  v$nls_parameters;

  查詢到的 spa

1
NLS_CHARACTERSET                                                 AL32UTF8  --主要是看這個編碼

  網上解決方式一,修改註冊表code

1
2
3
路徑:regedit>>HKEY_LOCL_MACHINE>>SOFTWARE>>ORALCE>>KEY_ORADB11G_HOME1
 
NLS_LANG的值設置爲SIMPLIFIED CHINESE_CHINA.ZHS16GBK    --主要是修改後邊的字符編碼便可

  疑問:數據庫明明是 AL32UTF8 編碼,客戶端爲何修改成GBK編碼 才能正常顯示。。大致可能數據庫的資源,在控制檯顯示的時候會有一個默認轉碼,設置爲GBK才能正常顯示。。。這個解決方法只能解決sqlplus的亂碼,而不能解決plsqldev的亂碼,有多是我裝的是64位數據庫,又裝了一個32位的客戶端,plsqldev是依靠32位,因此這樣的修改對plsqldev沒有影響blog

  網上解決方式二,修改環境變量ip

1
2
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
--加入一個系統環境變量

  這樣,plsqldev與sqlplus讀取時,都會先找系統環境變量,若是存在nls_lang變量,就不須要讀取註冊表了。。ci

 

最終解決方式資源

選擇方法二,直接修改環境變量,不須要修改註冊表,二者都會起做用

相關文章
相關標籤/搜索