关于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