java写png文件中文问题解决

我的系统是以 Redhat8.0、jdk1.4.2、语言en_US,虽然之前已经安装了freetype,但调用ImageMagick和 java.awt.image.*中的方法给图片打中文水印时仍然是乱码。虽然系统的默认语言是en_US,但RH8在/usr/share/fonts 下以及自带了中文TRUETYPE字库,不过问题一直解决不了。

怀疑是中文编码问题,可试了UTF-8、UTF-16都不行,字都成了“口口”。
那可能是系统查找字库有问题?去/etc/X11/fs/config看配置没看出什么问题来,再看/usr/lib/X11/fs/config也没有问题
没办法再上网找找,发现个jdk1.5运行环境的中文配置帖子。哦?原来JRE也要自己手工配置?再找找,终于找到个比较对头的帖子http://www.zahui.com/html/6/11798.htm。那我就学着改一下
在$JAVA_HOME/jre /lib下面有一对的fonts配置文件,我也不知道虚拟机具体用了哪一个,估计就是 font.properties,font.properties.RedHat8.0,font.properties.zh_CN.RedHat8.0 中的一个吧。看我的系统的表现,肯定不是font.properties.zh_CN.RedHat8.0,因为如果是这个,显示中文是肯定没有问题的。于是把font.properties.RedHat8.0备份了,然后直接把font.properties.zh_CN.RedHat8.0复制一份过去。
然后去改$JAVA_HOME/jre/lib/font.dir,把/usr/share/fonts/zh_CN/TrueType /fonts.dir的内容全部加进去,然后还要改第一行的那个数字,我拷了16行,就变成(72+16=)88。其实里面的gkai00mp.ttf是不会起作用的,因为font.properties.RedHat8.0没有说明这个字库,不过我有不会改,将就一下啦。
然后去启动程序,呵呵,可以了!!!!!!!!
PS:
调用GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();可以获得当前系统所有字库。这个是检查自己系统是否支持中文字库的好办法
我们一般用SECURECRT访问系统,输入中文,在终端是可以看得到正确显示的,但那是因为SECURECRT调用的是本地字库,但如果是输出到图片,调用的服务器字库。所以不能以为在终端显示正确就以为系统能支持中文。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值