UTF-8 エンコーディングを使用するように、Eclipse で Java プロジェクトをセットアップしました。IDE 内でコードを実行すると、UTF-8 で実行されます。ただし、Java プロジェクトを OS X アプリにバンドルしてそこから実行すると、Java コードが MacRoman で実行されることがCharset.defaultCharset()
.
バンドルされている OS X アプリを UTF-8 で実行するにはどうすればよいですか?
この回答は、文字エンコーディングが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>
ます。