中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 未整理篇
Linux下让JDK支持中文
作者:cm4ever 时间:2003-02-06 11:08 出处:互联网 责编:chinaitpower
              摘要:Linux下让JDK支持中文
1. 原因
JDK需要从字体配置文件中读取字体列表,而默认的字体列表并无中文字体。

2. 解决方法
为JDK的字体配置文件添加中文字体

3. 操作步骤

  3.1. 复制字体文件到jdk的字体目录
cd /usr/local/java/jre/lib/fonts
cp /usr/share/fonts/zh_CN/TrueType/gbsn00l.ttf .

  3.2. 生成字体列表文件
ttmkfdir -o fonts.dir

  3.3. 查看新生成的fonts.dir文件,查看有关gbsn00l.ttf的部分
vi fonts.dir

  3.4. 应该在文件的最后一行
-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--0-0-0-0-p-0-ascii-0

  3.5. 回到上一层目录,将gbsn00lp.ttf加入font.properties
cd ..
vi font.properties

  3.6. 添加方法:
    3.6.1 首先将3.4中看到的那一行文字复制出来,将其中的
0-0-0-0-p-0 改为 *-%d-*-*-p-*
目的是让字体能够按比例缩放,现在成为:
-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-0

    3.6.2 font.properties文件中,已经含有0和1字体,比如第一行是serif.0,第二行是serif.1,那么需要添加
serif.2=-Arphic Technology Co.-AR PL SungtiL GB-medium-r-normal--*-%d-*-*-p-*-ascii-0

    3.6.3 以此类推,在每个xxxx.1下面添加xxxx.2,直到文件的# Missing Glyph Character之前。

    3.6.4 添加完成,存盘退出。


  3.7. 添加环境变量JAVA_FONTS
vi /etc/profile

JAVA_FONTS=$JAVA_HOME/jre/lib/fonts

  3.8. 重新登陆以使环境变量生效

4. 测试
TestCHSGraphic.java(jdk1.3)

import java.awt.*;
import java.awt.image.*;

import java.io.*; import java.util.*;
import com.sun.image.codec.jpeg.*;
public class TestCHSGraphic { public static void main(String[] args) throws Exception { System.setProperty("java.awt.headless", "true"); BufferedImage bi = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB); Graphics g = bi.getGraphics(); String s = "中文测试"; // 注意!具体转码可能有所不同! g.drawString(new String(s.getBytes(), "GB2312"), 50, 50); bi.flush(); FileOutputStream fos = new FileOutputStream("test.jpg"); JPEGImageEncoder jpegie = JPEGCodec.createJPEGEncoder(fos); jpegie.encode(bi); fos.close(); } }
TestCHSGraphic.java(jdk1.4)

import java.awt.Graphics;
import java.awt.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;
public class TestCHSGraphic { public static void main(String[] args) throws Exception { System.setProperty("java.awt.headless", "true"); BufferedImage bi = new BufferedImage(200, 100, BufferedImage.TYPE_INT_RGB); Graphics g = bi.getGraphics(); String s = "中文测试"; // 注意!具体转码可能有所不同! g.drawString(new String(s.getBytes(), "GB2312"), 50, 50); ImageIO.write(bi, "jpeg", new File("test.jpg")); } }

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有