1

UTF-8 エンコーディングを使用するように、Eclipse で Java プロジェクトをセットアップしました。IDE 内でコードを実行すると、UTF-8 で実行されます。ただし、Java プロジェクトを OS X アプリにバンドルしてそこから実行すると、Java コードが MacRoman で実行されることがCharset.defaultCharset().

バンドルされている OS X アプリを UTF-8 で実行するにはどうすればよいですか?

4

1 に答える 1

1

この回答は、文字エンコーディングがJVMの起動時に決定されることに注意してください。これがコマンド ラインから実行されている場合は、ランタイム パラメータを追加して UTF-8 エンコーディングを設定できます。-Dfile.encoding=UTF-8

これはバンドルされたアプリで実行されているため、このパラメーターをターミナルに追加することはできません。幸いなことに、Apple は、バンドルされたアプリの起動中に、別の方法で上記のパラメーターを入力することを非常に簡単にしました。

まず、テキスト エディター (TextEdit が機能) を使用して、アプリケーション バンドル内の Info.plist ファイルを開きます (アプリを右クリックし、[パッケージの内容を表示] を選択して、[Contents] フォルダーを開きます)。次のようなセクションが表示されます。

<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>ます。

于 2013-11-14T06:36:43.873 に答える