insert into 到数据库中的中文,在代码中和oracle OEM中查看都是显示为???
我的VM里安装的是federo13 英文版的操作系统
然后安装了oracle 10g
SSH连接到linux 就无法显示中文字符
找到第一篇帖子 http://blog.csdn.net/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。
解决方法如下:
su - root
vi /etc/sysconfig/i18n
添加或修改 LANG="zh_CN.GBK"
然后使之生效:
source /etc/sysconfig/i18n
vi /etc/profile.d/chinese.sh
添加 export LC_ALL=zh_CN.GBK
chmod 755 /etc/profile.d/chinese.sh
source /etc/profile.d/chinese.sh
一般大家都会到为止,可使本用户终端字符编码显示为简体中文。
但是还改变不了其他用户的,或所有用户默认的设置。
因此为了使其他用户的终端也能默认为GBK编码规则,还要做如下操作:
vi /etc/environment
添加如下语句:
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"
source /etc/environment
经过上述步骤之后,在ssh上可以显示中文,但是在数据库中的数据依然是乱码
搜索到另一篇帖子:http://xiaotian-ls.iteye.com/blog/713170
讲述的是oracle的安装和字符集的配置全过程,摘取了字符集的设置
su oracle
vi ~/.bash_profile
添加以下内容:
export TNS_ADMIN=$ORACLE_HOME/network/admin
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显示和数据库中的中文数据都显示正常。