我目前正在为自定义语言编写Eclipse文本编辑器插件。
问题是,解析这些文件的工具不理解unicode,但编辑器应该显示unicode数学符号。
已经有一个Netbeans插件可以通过将unicode字符转换为多个ANSI字符来处理这个问题。例如。 U + 27F6(长向右箭头)在写入磁盘时编码为-->
,反之亦然。
我现在正在寻找几天,我找不到一个API或者什么东西可以让我在Eclipse平台上干净利落地做到这一点。
有谁知道怎么做?
答案 0 :(得分:1)
我不确定你的意思是“编码为-->
”
我认为不是实际的ASCII字符,因为没有办法将Unicode转换为所有 Unicode组合的ASCII表示。
仅对于 arrows ,the work for defining ASCII-expressible tokens for arrows and arrow-like就是......相当大!
我知道进行转换的native2ascii(也作为Netbeans的插件)
(不要与native2ascii.exe
bundled with the JDK混合)
对于Eclipse,您可以使用 ant task (可以从Java程序中调用),这相当于:
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir"
includes="**/*.eucjis" ext=".java"/>
(在此处,将srcdir
中.eucjis
结尾的所有文件从EUCJIS
编码转换为ASCII
并将其重命名为.java
}。)
您还可以设置自己的ascii <->
UTF转换函数,如此native2ascii Java project(与上面提到的native2ascii ant任务或native2ascii.exe无关)
提取物:
private static StringBuffer native2Ascii(char charater) {
StringBuffer sb = new StringBuffer();
if (charater > 255) {
sb.append("\\u");
int lowByte = (charater >>> 8);
sb.append(int2HexString(lowByte));
int highByte = (charater & 0xFF);
sb.append(int2HexString(highByte));
} else {
sb.append(charater);
}
return sb;
}
注意(无关):对于PDE构建,您需要设置一个特殊设置(javacDefaultEncoding
)。请参阅this thread。
答案 1 :(得分:0)
通过IFile.setCharset()设置charset是否有效?