`

Unicode汉字内码表3

阅读更多

BBS水木清华站∶精华区

发信人: saturnian (hotaru), 信区: Java 
标  题: Java1.1汉字问题解决方案 
发信站: BBS 水木清华站 (Tue Dec  9 20:40:26 1997) 
 
1. 复制字体文件(以win95环境为例) 
 
  cd <jdk或jre目录>\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 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.116.95.22] 

BBS水木清华站∶精华区

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics