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]