問題描述 :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
最終解決方式資源
選擇方法二,直接修改環境變量,不須要修改註冊表,二者都會起做用