日期:2014-05-17  浏览次数:20796 次

oracle那个sqlplus在linux上怎么显示中文的?
不得不说,Oracle在处理中文的时候很容易就会遇到乱码。

先问个简单的,oracle那个sqlplus在linux上怎么显示中文的?

装了个centos,中文的,再装了个oracle11g,然后在centos的终端console
里面用sqlplus。只是希望用sqlplus / as sysdba进行时,能看到一些汉字,
就是那些消息文字,已连接啊,多少行啊这些,如 
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
像这样。想用中文,结果始终是乱码。

nls_lang设为american倒是没有乱码,就是成了英文的了。设成simplified
就会乱码,奇怪


这个应该还不涉及到数据库字符集那些高深的东西,就已经悲剧了。。


注:只有在linux那个console上不行,其他的都行,如putty,sqlplus on windows,telnet,oracle sql developer, secure ssh client,等,用这些工具一连上去,只要nls_lang设为simplified china就肯定会出现是中文的消息的。

虽然平时肯定都是用远程工具登录使用的,很少会有机会用上那个Linux的本地登录后的concole,但是就是觉得有点奇怪,明明是中文的linux,桌面上一大堆的中文目录都没问题的,居然显示不了sqlplus的中文消息。
想问问看哪位知道是怎么回事?

也试过改那个i18n,结果连系统都不能登录了。

[oracle@testoracl ~]$ env|grep LANG
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
LANG=zh_CN.UTF-8
[oracle@testoracl ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on ????? 11?? 15 20:06:29 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.


?????: 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK


SQL> SELECT parameter, VALUE
FROM nls_database_parameters
WHERE parameter ='NLS_CHARACTERSET';

PARAMETER-----------------VALUE-------------------
NLS_CHARACTERSET ZHS16GBK


SQL> 

NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含义如下:
LANGUAGE指定:-Oracle消息使用的语言

http://zhidao.baidu.com/question/193447142.html

------解决方案--------------------
在 Console 终端上方的“设置”菜单栏里就有得设置呀。。。
我在公司,没有办法上传图片,你自己在你的终端上面的菜单栏里找一下
英文是 Encoding 的设置(中文就是编码,类似于 IE 的编码格式设置)
探讨

[Quote=引用:]

Linux 下的 Console 终端也是有设置编码格式的
你把编码格式设置成简体中文就可以了