LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1502|回复: 6

Oracle 不能正常显示中文(解决篇)……………建议安装界面乱码的朋友先看此贴

[复制链接]
发表于 2003-8-5 17:15:40 | 显示全部楼层 |阅读模式
Oracle9i 不能正常显示中文问题 解决篇


(适用于不能显示中文又想显示中文的朋友 redhat, magiclinux 测试通过)


Oracle 不能正常显示中文是因为,oracle 自带java 问题 因为自带java 1.1.8


和1.3.1 两个版本,而默认又使用1.1.8 ,jre 1.1.8 对中文支持不好所致,其实可以


将其改为使用1.3.1即可(将原先的1.1.8 换掉)


ln -s /opt/oracle/jre/1.3.1 /opt/oracle/product/9.2.0/JRE
(当然在做这步之前先要把原来的连接删掉,不用说了吧)

但是安装程序默认还是找1.1.8 jre文件 所以你还要加上


ln -s /opt/oracle/jre/1.3.1/bin/java /opt/oracle/jre/1.3.1/bin/jre






当然这样还是不够的,因为你的jre 1.3.1中文是否能正常显示呢?


赶快看看 /opt/oracle/jre/1.3.1/bin/ControlPanel 是否能正常显示中文,象这样:(图见最下)




假如没有的话,肯定是乱码 就要把它改过来 ,好,首先拷贝 simsun.ttf tahoma.ttf 改名成


tlc_song.ttf、tlc_song_ascii.ttf 然后放入/opt/oracle/jre/1.3.1/lib/fonts 下,再看看


/opt/oracle/jre/1.3.1/bin/ControlPanel 是不是能显示中文了呢,应该能正常显示了,


然后你再回去装oracle 就没问题了。






还有就是装完了,假如 Oracle net manager不能正常打开,反正这种情况我遇到了:






Exception in thread "main" java.lang.VerifyError: (class: oracle/net/mgr/service name/DBPanel$1, method: actionPerformed signature: (Ljava/awt/event/ActionEvent; )V) Illegal use of nonvirtual function call


at oracle.net.mgr.servicename.DBPanel.<init>(DBPanel.java)


at oracle.net.mgr.servicename.ConnectInfoEditor.<init>(ConnectInfoEditor .java)


at oracle.net.mgr.servicename.ServiceNameComponent.<init>(ServiceNameCom ponent.java)


at oracle.net.mgr.container.NetContainer.loadComponents(NetContainer.jav a)


at oracle.net.mgr.container.NetContainer.initClient(NetContainer.java)


at oracle.sysman.emSDK.client.appComponent.BaseAppComponent.init(BaseApp Component.java:242)


at oracle.sysman.emSDK.client.appContainer.WebApplication.addApplication Component(WebApplication.java:1168)


at oracle.net.mgr.container.NetApplication.init(NetApplication.java)


at oracle.sysman.emSDK.client.appContainer.WebApplication.launch(WebAppl ication.java:3443)


at oracle.sysman.emSDK.client.appContainer.WebApplication.main(WebApplic ation.java:3326)










其他均能正常显示中文,例如dbca oemapp console worksheet


不知道各位如何,因为以前经常遇到,所以想了一个应对的方法,首先


打开/opt/oracle/product/9.2.0/bin/netmgr 找到 139行


加入参数 -noverify,(出现这个错误是因为jre认为这段代码不安全,加入不检测参数就可以了)


$JRE -classpath $CLASSPATH -noverify oracle.net.mgr.container.NetApplication oracle.net.mgr.container.NetApplication









假如大家再有什么问题就联系我 tjaol@eyou.com
我相信,这些问题大家也经常遇到,我不希望安装成了大家学习数据库的绊脚石 ^_^ ,


最后 感谢 linuxfans.org 的x11兄,kan 兄

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-8-6 15:16:48 | 显示全部楼层
其实最简单的解决方法是把操作系统先改到英文环境下,安装完Oracle再改回来。
发表于 2003-8-6 15:34:51 | 显示全部楼层
当然在做这步之前先要把原来的连接删掉,不用说了吧


这一步如何作呢?给个解释吧
 楼主| 发表于 2003-8-8 10:40:17 | 显示全部楼层
rm  /opt/oracle/product/9.2.0/JRE
发表于 2003-8-14 22:55:10 | 显示全部楼层
呵呵,我不是linuxfans.org的,我就是这里混的
发表于 2003-8-15 02:22:45 | 显示全部楼层
在英文环境下安装.
安装完了之后再换回中文环境还是不能显示中文的呀!
所以用ORACLE就是要在英文环境下用!
发表于 2003-8-17 10:46:21 | 显示全部楼层
Oracle9i使用的默认汉字字体是tlc-song,是Turbo Linux中的一种字体。在RedHat等Linux上安装Oracle9i都会出现提示:
Font specified in font.properties not found [-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0]
而且中文显示成方块。
如果您的Linux上装了Java 2 SDK,那么追究这个问题的根源,可以发现$JAVA_HOME/jre/lib目录下有个font.properties.zh.Turbo配置文件中使用了tlc-song字体,运行ControlPanel也是显示方块,报同样的错误提示。经过试验,我发现,可以通过修改这个配置文件来解决,具体作如下:
1. 我的Linux使用的是simsum字体(可以在这里下载:http://www.leetao.com/down/simsun-ttf-2.10-2dyna.noarch.rpm),所以我把font.properties.zh.Turbo中的-tlc-song-都替换成-misc-simsun-,注意不要少了“-”,然后,再把font.properties.zh.Turbo改名成font.properties.zh,最后运行ControlPanel,现在就已经是正常的汉字显示了。
2. 有了上面的这个试验,我都到启示,同样可以修改Oracle9i中的安装文件来改变默认字体设置。首先要找到这个font.properties.zh,我在Disk1目录下搜索,果然找到了它( Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib/font.properties.zh)!,同样,修改这个文件,文件名不变,重新安装Oracle,汉字正常了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表