请注意,我不是问怎么偏偏。 我不知道这是否是一个RCP具体问题,或者如果它是内在的对Java的东西。
我的java源文件为UTF-8。
如果我这样定义我的文字字符串:
new Language("fr", "Français"),
new Language("zh", "中文")
它的工作原理如我所料,当我从Eclipse中启动它作为Eclipse应用程序中使用的应用程序中的字符串:
但是,如果当我启动的“Eclipse的产品导出向导”建立的.EXE失败:
我使用的解决方案是逃避这样的字符:
new Language("fr", "Fran\u00e7ais"), // Français
new Language("zh", "\u4e2d\u6587") // 中文
有在做这个(我的所有其他字符串属性文件,只是名称是硬编码的语言),没有问题,但我想明白了。
我认为有编译器生成时对Java文本字符串转换字节码 。 那么,为什么是Unicode逃逸必要吗? 这是错误的使用java源文件使用高范围的Unicode字符? 到底会发生这些字符在编译和它是从的转义字符的处理不同是什么? 问题是否只与RCP缓存?