Oracle 中文亂碼

1. 查看服務端的字符集


select * from V$NLS_PARAMETERS


Language_Territory.charset


2. 查看客戶端的字符集

regedit->LocalMachine->software->Oracle->Homex ->NLS_LANG




1. 如果預計系統未來需要支持多字符集,則在創建數據庫時候使用UTF8(例如選擇characterset爲AL32UTF8,national characterset爲UTF8):

SQL> select * from v$nls_parameters;

PARAMETER            VALUE
-------------------- --------------------

NLS_CHARACTERSET     AL32UTF8

NLS_NCHAR_CHARACTERS UTF8

如果預計系統未來僅支持簡體中文,則可以使用UTF8或者ZHS16GBK這樣的簡體中文字符集來創建數據庫

2. 要保證客戶端使用的字符集與客戶端的輸入輸出一致。例如如果要用sqlldr導入一個簡體中文編碼的文件,那麼需要先設置客戶端的字符集。這可以通過DOS的環境變量來達到

set NLS_LANG=.ZHS16GBK (這是一種簡寫的方式,注意=後面有一個點'.')

3. 客戶端字符集不一定是要和服務器端字符集一致。Oracle的客戶端會自動轉換。但是這種轉換必須是可行的。例如服務器端是UTF8,客戶端是ZHS16GBK就可以,因爲UTF8能夠描述的字符集是ZHS16GBK的全集。反過來,如果服務器端是US7ASCII客戶端是ZHS16GBK就不可以


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