我在Eclipse中设置了Java项目以使用UTF-8编码。当我在IDE中运行代码时,它使用UTF-8运行。但是,当我将Java项目捆绑到OS X应用程序并从那里运行时,Java代码与MacRoman一起运行,如Charset.defaultCharset()
所示。
如何使我的捆绑OS X应用程序以UTF-8运行?
答案 0 :(得分:1)
This answer注意到字符编码是由JVM启动时确定的。如果从命令行运行,您可以通过添加运行时参数-Dfile.encoding=UTF-8
由于这是在捆绑的应用程序中运行,因此您无法在终端中添加此参数。幸运的是,在启动捆绑的应用程序时,Apple可以很容易地以其他方式输入上述参数。
首先,使用文本编辑器(TextEdit工作)打开应用程序包中的Info.plist文件(右键单击应用程序并选择“显示包内容”,然后打开“目录”文件夹)。你会看到一个看起来像这样的部分:
<key>Java</key>
<dict>
<key>JVMVersion</key>
<string>1.5+</string>
<key>MainClass</key>
<string>com.yourCompanyName.YourApplication</string>
<key>Properties</key>
<dict>
<key>apple.laf.useScreenMenuBar</key>
<string>true</string>
</dict>
<key>VMOptions</key>
<string>-Xmx512m</string>
</dict>
导入部分是<key>Properties</key>
部分。如果它不存在,请创建它并在其下方<dict>
。在<dict>
标记之间添加以下键和值:
<key>file.encoding</key>
<string>UTF-8</string>
为了将来的启发,您可以通过这种方式添加任何系统属性。如果您有一个类似于此答案开头的参数,只需删除前导-D
,将部分放在<key>
中的等号之前,然后将部分放在<string>
中的等号之后