Linux安装Oracle中文乱码的解决


在Linux上安装过Oracle的时候汉字都是”口口”形乱码

最初时间比较紧张只能用英文安装,后来经过反复试验和整理,现在可以完全解决linux下oracle中文乱码的问题,下面是整理后的文档:

我想在linux 9 下也应该能够实现吧,这里主要还把系统添加了宋体和新宋体的字库,所以看着可能很麻烦
需要软件,google找 j2sdk-1_4_2_04-linux-i586.bin
javacn.zip

一.安装JDK
在/tmp下建立一个临时的文件夹
---------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth root]# mkdir javacn
[root@tooth root]# cd javacn
----------------------------------------------------

将 j2sdk-1_4_2_02-linux-i586.bin并保存到/tmp/javacn
给文件加上可执行的权限
----------------------------------------------------
[root@tooth root]# chmod 755 j2sdk-1_4_2_02-linux-i586.bin
----------------------------------------------------

执行文件安装JDK
----------------------------------------------------
[root@tooth root]# ./j2sdk-1_4_2_02-linux-i586.bin
----------------------------------------------------
......(一大堆的license的信息)
询问是否同意,当然选yes

----------------------------------------------------
[root@tooth root]# mv j2sdk1.4.2_02 /usr/j2sdk
----------------------------------------------------

现在JDK还不能算安装完成了,还要设置一下环境变量:

----------------------------------------------------
[root@tooth root]# vi $HOME/.bash_profile
在export PATH前加入下面一段
JAVA_HOME=/usr/j2sdk
export JAVA_HOME
JRE=$JAVA_HOME/jre
export JRE
PATH=$JAVA_HOME/bin:$JRE/bin:$PATH
----------------------------------------------------
存盘退出,执行[root@tooth root]# source .bash_profile 这样设置的环境变量就生效了
二. 安装系统字体
将附件文件解压到/tmp/javacn中,解压后的结果如下所示:
----------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth root]# cd javacn
[root@tooth javacn]# ls -l
----------------------------------------------------
-rw-r--r-- 1 root root 8102 1970-01-01 font.properties
drwxr-xr-x 9 root root 4096 6月 24 15:36 j2sdk1.4.2_02
-rw-r--r-- 1 root root 12642204 1970-01-01 SimSun18030.ttc
-rw-r--r-- 1 root root 10500352 1970-01-01 simsun.ttc
-rw-r--r-- 1 root root 7764 1970-01-01 sm.sh
-rw-r--r-- 1 root root 260472 1970-01-01 tahomabd.ttf
-rw-r--r-- 1 root root 265528 1970-01-01 tahoma.ttf

下面需要将$JRE/lib中的font.properties文件改名备份,并将/tmp/javacn中的font.properties文件拷贝到$JRE/lib中

----------------------------------------------------
[root@tooth root]# cd $JRE
[root@tooth jre]# cd lib
[root@tooth lib]# mv font.properties font.properties.bak
[root@tooth lib]# cp /tmp/javacn/font.properties ./
----------------------------------------------------

剩下的操作就是执行/tmp/javacn/sm.sh了。
在执行sm.sh后系统后自动重启,所以在执行下面的操作前请一定保存正在进行的工作!

----------------------------------------------------
[root@tooth root]# cd /tmp
[root@tooth tmp]# cd javacn
[[root@tooth javacn]# chmod 755 sm.sh
[root@tooth javacn]# ./sm.sh
----------------------------------------------------
此处操作系统会重新启动。
三. 设置操作系统字体
重新启动登录后,按如下步骤操作:
(下面的步骤是KDE里的,GNOME里应该差不多)
开始->控制中心->外观和主题->字体 可以将系统的字体修改为宋体simsun
一. Red Hat系统
1. 安装时选取简体中文安装,先复制simsun.ttc(宋体)simsun18030.ttc(新宋体)tahomabd.ttf tahoma.ttf到/usr/X11R6/lib/X11/fonts/TrueType下,并将所有ttc文件改为ttf文件;
2. 2.然后进入/usr/X11R6/lib/X11/font/TrueType目录下,
3. 运行ttmkfdir>fonts.dir命令;接着用vi编辑fonts.dir文件,将下面内容添加进去

----------------------------------------------------
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
----------------------------------------------------
然后执行 #cat fonts.dir>font.scale
修改/etc/X11/XF86Config,
[root@tooth X11]# vi XF86Config
在Section“Files”加上下面这一行:FontPath “/usr/X11R6/lib/X11/fonts/TrueType”
二.JDK
1.先复制simsun.ttf(宋体)simsun18030.ttf(新宋体)tahomabd.ttf tahoma.ttf到$JAVA_HOME/jre/lib/fonts下,在将系统中刚刚生成的fonts.dir以及fonts.scale文件复制到$JAVA_HOME/jre/lib/fonts下即可.
四. 安装Oracle
此时切换到Oracle用户,运行./runInstaller,出来的界面应该是亲切的中文界面了,如果还是乱码请检查上面的步骤。
到此oracle的安装过程已经不是乱码,可以显示中文

oracle安装好后启动ocm等还会是乱码
所以要修改他的jre文件

先改dbca
----------------------------------------------------
[oracle@tooth oracle]$ cd $ORACLE_HOME
[oracle@tooth 9.2]$ cd bin
[oracle@tooth bin]$ vi dbca
----------------------------------------------------
将最后一段
# Run DBCA
$JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS
PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
改成:
# Run DBCA
java -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASS
PATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
==========================================
再改oemapp
[oracle@tooth bin]$ vi oemapp
也是最后一段
if [ "$1" = "ocmcli" ]
then
exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"
"$5" "$6" "$7" "$8" "$9"
else
exec $JRE -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6
$7 $8 $9
fi

改成:
if [ "$1" = "ocmcli" ]
then
java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION "$2" "$3" "$4"
"$5" "$6" "$7" "$8" "$9"
else
java -DADMIN_WRL=$ADMIN_WRL -DORACLE_HOME=$ORACLE_HOME -DORBdisableLoca
tor=true -Djdbc.backward_compatible_to_816=true $JREOPTIONS_STRING -$CLASSPATH_Q
UAL $CLASSPATHADD oracle.sysman.vtx.vtxOemApp.OemApp $APPLICATION $2 $3 $4 $5 $6
$7 $8 $9
Fi
=======================================================
最后,是netca
[oracle@tooth bin]$ vi netca
还是最后一段
# Run Net Configuration Assistant
cd $NETTOOLSDIR
$JRE -classpath $CLASSPATH oracle.net.ca.NetCA $*
exit $status

改成
# Run Net Configuration Assistant
cd $NETTOOLSDIR
java -classpath $CLASSPATH oracle.net.ca.NetCA $*
exit $status

个人已经实现oracle中文安装和oracle中文界面的设置,安装文档完全可以实现

相关内容