PL/SQL Developer 顯示中文亂碼問題

 PL/SQL Developer 顯示中文亂碼問題

簡單版本:

首先,通過 

select userenv('language') from dual;

查詢oracle服務器端的編碼, 如爲: AMERICAN_AMERICA.US7ASCII 顯示什麼編碼 就設置什麼編碼

 

在我們的客戶端需要和服務器端的編碼保持一致。

因此在客戶端,需要設置環境變量: NLS_LANG = AMERICAN_AMERICA.US7ASCII 即可。

以上是默認編碼

GBK如下:

windows中創建一個名爲“NLS_LANG”的系統環境變量,設置其值爲“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然後重新啓動 pl/sql developer,這樣檢索出來的中文內容就不會是亂碼了。

UTF-8如下:

如果想轉換爲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; 

也可以參照/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"

如圖:


3.重新連接sqlplus,查看數據:


顯示正常.

4.PL/SQL Developer設置並重新連接:

pl/sql developer的菜單->tools->preferences->user interface->fonts 中修改爲中文字體

重新連接,如圖:

顯示正常.OK!


如果圖片看不到,可以查看附件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章