Den*_*ret 12 java unicode eclipse-rcp unicode-escapes
请注意,我不是在问为什么,而是为什么.我不知道这是否是RCP特定的问题,或者它是否是Java固有的东西.
我的java源文件以UTF-8编码.
如果我像这样定义我的文字字符串:
new Language("fr", "Français"),
new Language("zh", "??")
Run Code Online (Sandbox Code Playgroud)
当我在Eclipse中使用字符串作为Eclipse应用程序启动它时,它正如我所期望的那样工作:

但是,当我启动由"Eclipse Product Export Wizard"构建的.exe时失败:

我使用的解决方案是逃避这样的字符:
new Language("fr", "Fran\u00e7ais"), // Français
new Language("zh", "\u4e2d\u6587") // ??
Run Code Online (Sandbox Code Playgroud)
这样做没有问题(我的所有其他字符串都在属性文件中,只有语言名称是硬编码的)但我想了解.
我认为编译器在构建字节码时必须转换java文字字符串.那么为什么unicode逃逸是必要的呢?在java源文件中使用高范围unicode字符是错误的吗?编译中的那些字符究竟发生了什么,以及与转义字符的处理有何不同?该问题是否与RCP缓存有关?
Mat*_*all 10
Eclipse Product Export Wizard似乎没有将您的文件解释为UTF-8.也许你需要运行Eclipse的JVM,编码设置为UTF-8(-Dfile.encoding=UTF8in eclipse.ini)?
(在OPs请求下Copypasta)