Eclipse文本编辑器插件&自定义编码

时间:2010-01-18 16:22:45

标签: eclipse-plugin

我目前正在为自定义语言编写Eclipse文本编辑器插件。

问题是,解析这些文件的工具不理解unicode,但编辑器应该显示unicode数学符号。

已经有一个Netbeans插件可以通过将unicode字符转换为多个ANSI字符来处理这个问题。例如。 U + 27F6(长向右箭头)在写入磁盘时编码为-->,反之亦然。

我现在正在寻找几天,我找不到一个API或者什么东西可以让我在Eclipse平台上干净利落地做到这一点。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

我不确定你的意思是“编码为-->” 我认为不是实际的ASCII字符,因为没有办法将Unicode转换为所有 Unicode组合的ASCII表示。
仅对于 arrows the work for defining ASCII-expressible tokens for arrows and arrow-like就是......相当大!

我知道进行转换的native2ascii(也作为Netbeans的插件)

Native2Ascii for 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是否有效?