我正在爲自定義語言編寫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