2010-07-09 59 views
3

我有一個我嘗試本地化的JavaFX/Groovy應用程序。Java webstart字符編碼問題

事實證明,當我在本地使用Java VM arg「-Dfile.encoding = UTF-8」執行JavaFX標準執行時,所有國際字符(例如ü)都能正確顯示。但是,如果我通過JNLP文件使用java-vm-args =「 - Dfile.encoding = UTF-8」來調用應用程序,例如

<resources> 
    <j2se version="1.6+" java-vm-args="-Dfile.encoding=UTF-8"/> 
    ...other stuff... 
</resources> 

該應用程序顯示國際字符作爲一對其他隨機字符(如√)。

我是否在JNLP中指定了錯誤的文件編碼,或者是否存在影響此標準執行和Webstart之間的某些區別?

備受讚賞。

編輯:我正在使用Groovy API訪問記住牛奶REST風格的Web服務。所有有問題的文本都將來自檢索到的數據(如任務名稱),實際上並不是以二進制或文本形式存儲在磁盤上。很奇怪「-Dfile.encoding = UTF-8」會在本地修復它。

+0

事實證明,你只能在JNLP中指定某些「幸運」的虛擬機參數。不被視爲「安全」的參數被忽略。請參閱http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html#resources以獲取可用的列表 – 2010-07-13 22:00:11

回答

4

我強烈建議您明確指定要將文本轉換爲二進制或反之亦然的編碼。依靠JVM的默認設置 - 即使設置了默認設置 - 對我來說也不是一個好主意。你還沒有真正說過你在用文本做什麼,但是如果你在保存或加載時明確地設置了編碼,那應該沒問題。

+0

希望更新我的問題關於我如何處理文本的足夠信息。乾杯。 – 2010-07-09 15:36:32