荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (35.5), 信区: Java
标  题: Java1.1汉字问题解决方案
发信站: 深大荔园晨风站 (Thu Apr  9 11:34:26 1998), 转信

发信人: saturnian (hotaru), 信区: Java
标 题: Java1.1汉字问题解决方案
发信站: BBS 水木清华站 (Tue Dec 9 20:40:26 1997)

1. 复制字体文件(以win95环境为例)

cd \lib
copy font.properties.zh font.properties

另外有font.properties.zh_TW(繁体)、font.properties.ja(日文)
和font.properties.ko(韩文)可供选择。


2. 支持中文的字体

Dialog, Dialoginput, Serif, Sansserif, Monospaced

注意:其他字体如TimesRoman, Courier等均不支持中文

3. 程序设计上要注意的问题

a. 不要使用DataInputStream与DataOutputStream,而要用
BufferedReader与BufferedWriter。例如:

BufferedReader in=new BufferedReader
(new InputStreamReader(new FileInputStream(file)));

BufferedWriter out=new BufferedWriter
(socket.getOutputStream());

详细资料请参考jdk文档。

b. Properties类的save()和load()方法中文支持亦有问题。建议
不要使用它们,而用BufferedReader与BufferedWriter自行写
输入输出。

c. 对程序员而言,字符串无需任何转换(我指String.getBytes()
方法),亦无须使用Locale类。如果你还是担心,可在程序开头
使用以下方法:
Locale.setDefault(Locale.SIMPLIFIED_CHINESE);
但是这样做会使你的程序失去支持多内码的能力。不推荐使用。
^^^^^^^^^^
4. 测试心得

以上方法在win95平台上经测试完全没问题。java.awt包中的组件,
包括Label, Button, TextField, TextArea, List等等均无问题,而且
Graphics.drawString()方法亦可正常画出中文。另外文本文件的读写、
网络的文本传输均未发现问题。
另外,jre是分英文版和国际版的,若不使用国际版,就无法支持
中文以及其他内码。jdk则肯定支持中文。

5. 仍存在的小问题

TextComponent(即TextField与TextArea)的selectAll()方法。因
String.length()求出的长度是unicode的长度,若文本中有中文,该
方法无法把文本全部选上。
另外,TextComponent内亦无法输入中文,需使用copy/paste。

... 暂时只发现这些... :)
--
Hotaru -> Saturn ?
Hotaru == Saturn ??
--
来去如风

※ 来源:.深大荔园晨风站 bbs.szu.edu.cn.[FROM: 202.192.140.5]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店