Oracle 客户端乱码的设置

来源:互联网 发布:python正态分布随机数 编辑:程序博客网 时间:2024/04/29 01:39

.2.  Description by Source

开发人员在部署新的运行环境时,不可避免的会重建数据库环境。但是我发现很多同事在执行建库脚本时,命令行输出都是乱码,这样不利于排查执行脚本时报出的错误。下面我分享一下我遇到这问题时的解决办法。

 

 

1.3.  Description by Analyzer

从本质上来说,造成乱码的根本原因是字符集设置不正确导致。最有可能的就是客户端设置的字符集与服务端数据库字符集不匹配,我们可以从这里入手。

2.  Analysis

登陆数据库服务器,查询数据库使用的字符集:

 

修改客户端Oracle字符集,这里提供两种方法

 

a. 注册表,

 

查找项(具体路径取决于oracle安装的版本),例如:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_XE

 

HKEY_LOCAL_MACHINE\SOFTWARE\ ORACLE\ key_OraDb10g_home1

 

修改字符串值

NLS_LANG = AMERICAN. AL32UTF8

 

b. 环境变量

 

新建变量

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中使用某些应用程序会出现乱码,这个时候注意修改系统区域设置

 

原创粉丝点击