【问题标题】:Bundled Java OS X App Defaults to MacRoman Encoding捆绑的 Java OS X 应用程序默认为 MacRoman 编码
【发布时间】:2013-11-14 06:36:43
【问题描述】:

我在 Eclipse 中设置了我的 Java 项目以使用 UTF-8 编码。当我在 IDE 中运行代码时,它使用 UTF-8 运行。但是,当我将我的 Java 项目捆绑到 OS X 应用程序并从那里运行时,Java 代码使用 MacRoman 运行,正如 Charset.defaultCharset() 所证实的那样。

如何让捆绑的 OS X 应用以 UTF-8 运行?

【问题讨论】:

    标签: java macos encoding utf-8 mac-roman


    【解决方案1】:

    This answer 注意到字符编码是由 JVM 在启动时确定的。如果这是从命令行运行的,您可以通过添加运行时参数-Dfile.encoding=UTF-8

    来设置 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>
    

    导入部分是&lt;key&gt;Properties&lt;/key&gt; 部分。如果它不存在,请创建它并在其下方创建 &lt;dict&gt;。在&lt;dict&gt; 标签之间添加以下键和值:

    <key>file.encoding</key>
    <string>UTF-8</string>
    

    为了将来的启迪,您可以通过这种方式添加任何系统属性。如果您有此答案开头的参数,只需删除前导-D,将等号之前的部分放在&lt;key&gt; 中,将等号之后的部分放在&lt;string&gt; 中。

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      相关资源
      最近更新 更多