文选流氓 发表于 2003-5-11 22:51

1-1-16-2-21 IDEA 3.0正式版 and some java books uploa..

发信人: ioly (anguls), 信区: Java
标题: Re: IDEA 3.0正式版 and some java books uploa...
发信站: BBS 水木清华站 (Thu Nov 14 10:09:36 2002), 转信

对于中文问题有如下看法, 希望能抛砖引玉
起因:
idea3.0实际上对中文支持已经很好, 但是由于其默认charset是utf-8,
当你在ide options选择"新宋体"并保存的时候, idea将你的style的信息
以xml的格式写到\IntelliJ-IDEA-3.0\config\colors(windows 2000平台),
很可惜它写xml的时候使用的是系统默认charset, 这显然是个失误:
<?xml version="1.0" encoding="UTF-8"?>
<scheme name="style1" parent_scheme="Default">
   <option name="LINE_SPACING" value="1.0" />
   <option name="EDITOR_FONT_SIZE" value="13" />
   <option name="EDITOR_FONT_NAME" value="新宋体"/>
三个gb码的"新宋体"显然没有作任何处理. 于是, idea下次启动的时候,
使用utf-8 parse这个xml的时候显然无法正确识别字体名.
解决方法:
1, 将那个xml中的"新宋体"三个字的码字转换成"UTF-8"编码. 下面是一个参考
转码程序:

Enc.java
import java.io.*;
public class Enc{
    public static void main(String[] args) throws Exception{
      if (args.length != 4){
            System.out.println("usage: java Enc <src file> <src encoding> <t
arget file> <target encoding>");
            System.exit(0);
      }else if (args.equals(args)){
            System.out.println("cannot overwrite src file, change the target
file name pls.");
            System.exit(0);
      }
      BufferedReader reader = new BufferedReader(new InputStreamReader(new
FileInputStream(args), args), 1024 * 1024);
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(ne
w FileOutputStream(args), args), 1024 * 1024);
      String line = reader.readLine();
      while(line != null){
            writer.write(line);
            writer.newLine();
            line = reader.readLine();
      }
      reader.close();
      writer.close();
    }
}

转码成功后的xml文件头是这样
<?xml version="1.0" encoding="UTF-8"?>
<scheme name="style1" parent_scheme="Default">
    <option name="LINE_SPACING" value="1.0" />
    <option name="EDITOR_FONT_SIZE" value="13" />
    <option name="EDITOR_FONT_NAME" value="鏂板畫浣?" />
这里的"新宋体"三个字用的是真正的utf-8编码
2, 第二种方法还只属于构思. 就是想办法搞出这样一种字体, 支持汉字显示,
    但字体名是英文的. 这等于是对idea网开一面. 初步的设想是拷贝一份
    新宋体的ttc(simsun.ttc), 然后想办法更改其字体名. 这可不仅仅是更改
    一下文件名就可以的. 不知道ttc文件的结构, 无从下手.


【 在 NullPointer (空指针·莫之夭阏) 的大作中提到: 】
: 建议把Editor Font设为Courier, Size 13 or 12


--

※ 来源:·BBS 水木清华站 smth.edu.cn·
页: [1]
查看完整版本: 1-1-16-2-21 IDEA 3.0正式版 and some java books uploa..