В комплекте приложения Java OS X по умолчанию используется кодировка MacRoman
У меня есть проект Java, настроенный в Eclipse для использования кодировки UTF-8. Когда я запускаю код в среде IDE, он запускается с UTF-8. Однако, когда я связываю свой проект Java в приложение OS X и запускаю его оттуда, код Java запускается с MacRoman, что подтверждается Charset.defaultCharset()
,
Как я могу заставить мое приложение OS X работать в UTF-8?
1 ответ
В этом ответе отмечается, что кодировка символов определяется JVM при запуске. Если бы это запускалось из командной строки, вы могли бы установить кодировку UTF-8, добавив параметр времени выполнения -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>
,