Oracle客户端乱码的设置
Oracle客户端乱码的设置
Description by Source
开发人员在部署新的运行环境时,不可避免的会重建数据库环境。但是我发现很多同事在执行建库脚本时,命令行输出都是乱码,这样不利于排查执行脚本时报出的错误。下面我分享一下我遇到这问题时的解决办法。
1.3. Description by Analyzer
从本质上来说,造成乱码的根本原因是字符集设置不正确导致。最有可能的就是客户端设置的字符集与服务端数据库字符集不匹配,我们可以从这里入手。
2. Analysis
登陆数据库服务器,查询数据库使用的字符集:
修改客户端Oracle字符集,这里提供两种方法
a. 注册表,
n 查找项(具体路径取决于oracle安装的版本),例如:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_XE
HKEY_LOCAL_MACHINE\SOFTWARE\ ORACLE\ key_OraDb10g_home1
n 修改字符串值
NLS_LANG = AMERICAN. AL32UTF8
b. 环境变量
n 新建变量
NLS_LANG = AMERICAN.AL32UTF8
修改完客户端字符集以后,我们重新在命令行执行sqlplus看看
现在乱码已经消失,我们可以通过英文来正常使用。
但是很多情况下,通过中文语言会使操作更方便,那应该如何使用处理呢?同样我们将客服端字符集改成中文
这是时候运行sqlplus命令,发现乱码又出现了(有些人可能不会出现乱码,正常显示中文,原因见后),那怎么办呢,看看下面的解决方案:
1) 打开Startmenu(开始菜单)并单击Control Panel(控制面板)打开它
2) 单击Clock,Language, and Region(时钟、语言和区域)下面的Change displaylanguage(更改显示语言)
3) 切换到Administrative(管理)选项卡。单击Change system locale…(更改系统区域设置)按钮注:若弹出用户账户控制窗口,请允许以继续。
4) 将Currentsystem locale (当前系统区域设置)改为:Chinese(Simplified,PRC)系统会弹出如下计算机重启提示:
重启以后再执行数据库脚本,控制台输出一切正常了
3. Conclusion
这个案例中我们可以了解到,字符集的正确设置在软件开发中,是非常重要的。刚才的设置以后通过数据库管理工具PL/SQLDeveloper登陆数据库时,会出现提示:
一般情况并不会有太大影响,但是尽可能的保证客户端字符集与服务器数据库的字符集保持一致。
在Windows中使用某些应用程序会出现乱码,这个时候注意修改系统区域设置