在windows中創建一個名為“NLS_LANG”的系統環境變量,設置其值為“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新啟動 pl/sql developer,這樣檢索出來的中文內容就不會是亂碼了。如果想轉換為UTF8字符集,可以賦予“NLS_LANG”為 “AMERICAN_AMERICA.UTF8”,然后重新啟動 pl/sql developer。其它字符集設置同上。
NLS_LANG格式:
NLS_LANG = language_territory.charset
有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:language 指定服務器消息的語言。territory 指定服務器的日期和數字格式。charset 指定字符集。
如何設置客戶端字符集與服務器端字符集一致:
運行REGEDIT,第一步選HKEY_LOCAL_MACHINE,第二步選擇SOFTWARE,第三步選擇 Oracle,第四步選擇 NLS_LANG,鍵入與服務器端相同的字符集。
例如:AMERICAN_AMERICA.UTF8或者SIMPLIFIED CHINESE_CHINA.ZHS16GBK
oracle 10g裝上后,建了個表寫入中文數據,發現通過工具PL/SQL Developer中文不能正常顯示.
要正常顯示中文,就必須得服務器和客戶端編碼一致才行。于是檢查:
1.檢查服務器編碼:
執行SQL語法:
select * from v$nls_parameters;
developer 中文字段顯示亂碼( 轉載)" border=0 alt="PL/SQL Developer 亂碼" src="http://hiphotos.baidu.com/%CE%D2%BA%DC%B0%AE%D5%C5%B2%AE%C2%D7/pic/item/35bff655c4e32667d00906ee.jpg" width=580 height=300 real_src="http://xok.la/wp-content/uploads/2008/11/nlslang_0.gif">
也可以參照/home/oracle/.bash_profile 相關語言設置.
可以看到我的相關設置是:
LANG=zh_CN.GBK
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
2.設置本地客戶端編碼:
進入我的電腦,屬性,高級,環境變量,添加2項:
LANG=zh_CN.GBK
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
如圖:
developer 中文字段顯示亂碼( 轉載)" border=0 alt="PL/SQL Developer 亂碼" src="http://hiphotos.baidu.com/%CE%D2%BA%DC%B0%AE%D5%C5%B2%AE%C2%D7/pic/item/6ad2b95945a407e19d8204ee.jpg" real_src="http://xok.la/wp-content/uploads/2008/11/nlslang_1.gif">
3.重新連接sqlplus,查看數據:
developer 中文字段顯示亂碼( 轉載)" border=0 alt="PL/SQL Developer 亂碼" src="http://hiphotos.baidu.com/%CE%D2%BA%DC%B0%AE%D5%C5%B2%AE%C2%D7/pic/item/ed9598df0a2f6567cdbf1aee.jpg" real_src="http://xok.la/wp-content/uploads/2008/11/nlslang_2.gif">
顯示正常.
4.PL/SQL Developer設置并重新連接:
在pl/sql developer的菜單->tools->preferences->user interface->fonts 中修改為中文字體
重新連接,如圖:
顯示正常.OK!
developer 中文字段顯示亂碼( 轉載)" border=0 alt="PL/SQL Developer 亂碼" src="http://hiphotos.baidu.com/%CE%D2%BA%DC%B0%AE%D5%C5%B2%AE%C2%D7/pic/item/a01efa595412d8be810a18ee.jpg" real_src="http://xok.la/wp-content/uploads/2008/11/nlslang_3.gif">
From:http://apps.hi.baidu.com/share/detail/19972908