insert into 到数据库中的中文,在代码中和oracle OEM中查看都是显示为???
我的VM里安装的是federo13 英文版的操作系统
然后安装了oracle 10g
SSH连接到linux 就无法显示中文字符
找到第一篇帖子 http://blog.youkuaiyun.com/naxiwer/archive/2008/12/29/3638442.aspx
讲述的是在linux终端设置oracle显示字符,但是不涉及oracle内部的字符改变:
--设置oracle数据库显示中文
修改oracle用户下的.bash_profile 文件,添加NLS_LANG参数,与oracle数据库中的语言形式一致。
例如:
vi .bash_profile
添加export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
source .bash_profile
--解决linux下的中文乱码问题:
按如下方式可修改为GBK。 解决方法如下: vi /etc/profile.d/chinese.sh 一般大家都会到为止,可使本用户终端字符编码显示为简体中文。 但是还改变不了其他用户的,或所有用户默认的设置。 因此为了使其他用户的终端也能默认为GBK编码规则,还要做如下操作: vi /etc/environment 添加如下语句: source /etc/environment 经过上述步骤之后,在ssh上可以显示中文,但是在数据库中的数据依然是乱码 搜索到另一篇帖子:http://xiaotian-ls.iteye.com/blog/713170 讲述的是oracle的安装和字符集的配置全过程,摘取了字符集的设置 su oracle 添加以下内容: export TNS_ADMIN=$ORACLE_HOME/network/admin
su - root
vi /etc/sysconfig/i18n
添加或修改
LANG="zh_CN.GBK"
然后使之生效:
source /etc/sysconfig/i18n
添加 export LC_ALL=zh_CN.GBK
chmod 755
/etc/profile.d/chinese.sh
source /etc/profile.d/chinese.sh
LANG=zh_CN.GBK
LANGUAGE="zh_CN:zh:en_US:en"
GST_ID3_TAG_RNCODING=GBK
LC_CTYLE=zh_CN.GBK
LC_ALL="zh_CN.GBK"
vi ~/.bash_profile
export
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LANG=AMERICAN_AMERICA.ZHS16GBK
source .bash_profile
再说下oracle更改数据库字符集编码的问题。
1.用sys登录到oracle中
sqlplus '/as
sysdba'
2.开始修改编码
shutdown immediate;停止oracle服务以及监听。如果服务停止,这部可省略
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;初始化设置job
alter database open;
alter database character set internal_use utf8;设置编码
shutdown
immediate;
startup;
至此编码已经设置完成。
经过测试,生效,ssh显示和数据库中的中文数据都显示正常。