解决SqlPlus前台程序出现中文乱码的问题
在使用sqlplus的过程中,常常会遇到某一台机器在访问oracle数据库时中文显示乱码的问题,实际上这是因为客户端字符集和服务器字符集不一致导致的。在实际使用中,服务器字符集,客户端字符集和操作系统字符集必须一致,或者为包含关系才能正确显示出中文字符,这篇经验介绍了一种通过修改客户端字符集和操作系统字符集的方式来消除中文乱码的方法
-
按win+R键调出windows运行窗口,并在窗口中输入“cmd”以便进入命令行程序。
-
在cmd命令行下输入“sqlplus 用户名/密码@服务名”来登陆数据库,其中用户名,密码,服务名需要根据实际情况进行替换。登陆完成后,会发现提示语并不是中午,或者包含有乱码,这就是我们需要解决的问题。在sqlplus中执行 select userenv('language') from dual;查看当前数据库的字符集,为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。我们只需要把客户端字符集和操作系统字符集都设置成这个就行了
-
首先设置客户端字符集,右击我的电脑,选择属性。
-
在弹出的“属性”对话框中,选择“高级”->“环境变量”。
-
在环境变量中查找一个名为“NLS_LANG”的环境变量,如果找不到,则新建一个,把变量值赋值为:“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”(需要根据实际数据库服务器字符集进行赋值)。客户端字符集设置成功。
-
在开始菜单中选择“控制面板”-“区域和语言选项”,在该选项下对计算机语言进行设置。
-
在“高级”选项下,选择“非Unicode程序的语言”为中文,同时点击确定。点击确定后会提示安装字符集同时提示需要重启计算机才能生效,重启吧。
-
重启完成后,再次进入sqlplus,发现中文乱码问题解决。