关于redhat  enterprise linux 6.4下oracle11g中文乱码问题总结 

时间:20140722 作者:李福东(易仔阿克)

一、现象

1、oracle与sqldeveloper字体乱码;

2、sqldeveloper中无法输入和显示中文。

二、问题分析

1、首先应当正确安装中文输入法

2、oralce和sqldeveloper依赖的jdk/jre不支持中文字体

三、解决方法

1、安装中文输入法ibus-pinyin(从redhat安装文件的package中找到几个ibus开头的包,rpm即可);

2、中文输入法安装成功后,在菜单:系统-偏好-输入法中选择中文输入法即可;

3、安装jdk(这里安装了jdk1.7)

4、找到jdk/jre/lib/fonts目录,然后mkdir fallback;

5、find / -name *.ttc 找到zgy的字体文件,然后ln -s 字体文件目录/字体文件名 fallback/

6、在fallback下执行mkfontdir和mkfontscale

7、netca/dbca/sqldeveloper.sh等确认是否可以输入中文;

8、到此为止,还是不行,猜想sqldeveloper缺省调用的是oracle自己的jre,于是删除oracle下的jre

9、重新启动sqldeveloper,此时可以使用中文输入了,并且select不是乱码了!

四、总结

1、确认jdk/jre是oracle和sqldeveloper所使用的,方法是先删除oracle下的jdk检验,会提示;

2、相应的环境变量要设置正确,包括/etc/profile、~/.bash_profile,示例如下:

vi /etc/profile

/etc/profile文件末尾追加:

#set java environment

export JAVA_HOME=/opt/jdk1.7

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

:wq

source /etc/profile

vi ~/.bash_profile

#set oracle environment

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/OraHome

export ORACLE_SID=orcl

export ORACLE_OWNER=oracle

export ORACLE_TERM=vt100

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

PATH=$PATH:/usr/sbin;export PATH

PATH=$PATH:/usr/bin;export PATH

:wq

source ~/.bash_profile