我正在为自定义语言编写Eclipse文本编辑器插件。Eclipse文本编辑器插件和自定义编码
问题是,解析这些文件的工具不理解unicode,但编辑器应显示unicode数学符号。
已经有一个Netbeans插件通过将unicode字符转换为多个ANSI字符来处理这个问题。例如。写入磁盘时,U + 27F6(向右长箭头)被编码为-->
,反之亦然。
我正在寻找现在的日子,我无法找到一个API或一些可以让我在Eclipse平台上干净地做到这一点的东西。
有谁知道如何做到这一点?
我正在为自定义语言编写Eclipse文本编辑器插件。Eclipse文本编辑器插件和自定义编码
问题是,解析这些文件的工具不理解unicode,但编辑器应显示unicode数学符号。
已经有一个Netbeans插件通过将unicode字符转换为多个ANSI字符来处理这个问题。例如。写入磁盘时,U + 27F6(向右长箭头)被编码为-->
,反之亦然。
我正在寻找现在的日子,我无法找到一个API或一些可以让我在Eclipse平台上干净地做到这一点的东西。
有谁知道如何做到这一点?
我不确定你的意思是“编码为-->
”。
不是实际的ASCII字符,我猜想,因为没有办法将Unicode转换为ASCII码表示,因为全部是 Unicode组合。
对于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"/>
(其中,在这里,转换从EUCJIS
编码ASCII
在.eucjis
结束目录srcdir
的所有文件,并重新命名他们.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。
unicode符号和它们的多字节ASCII表示之间有一个预定义的映射表。箭头只是一个例子 我也不想使用集成的Eclipse构建系统。据我所知,native2ascii仅对Java源代码有用。 但是非常感谢你的努力。 – 2010-01-24 01:37:44
设置字符集通过IFile.setCharset()的作品?
我看着那个。如果我知道如何定义自己的字符集/编码,这可能会有所帮助。 – 2010-01-21 06:51:36
刚刚完成我的答案,建议Java实现。 – VonC 2010-01-25 08:33:51
我不需要native2ascii的Java实现。我完全知道如何实现编码过程。这是*不是问题。 问题是,显然没有简单的方法将这种文档转换嵌入到Eclipse的保存和加载过程中。 – 2010-01-25 15:31:59