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就不可以


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