Генерация файла UTF-8 из jar-файла - PullRequest
0 голосов
/ 25 ноября 2010

Я хочу создать файл UTF-8 из jar-файла со следующим кодом:

public class UTF8 {
 public static void main(String[] args) throws Exception {
  BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
    "utf8.txt"), "UTF8"));
  out.write("Look at this BASTÖÖÜÜÄÄ!");
 }
}

Этот код очень хорошо работает с использованием eclipse.Но если я упаковываю его в файл jar, он использует зависящую от платформы кодировку файла (Cp1252, например, в Windows).Что я могу сделать против этого?

Ответы [ 5 ]

4 голосов
/ 24 мая 2011

В поле параметров JVM на вкладке JRE в Launch4j (после загрузки файла конфигурации) введите следующее:

-Dfile.encoding=UTF8

В качестве альтернативы, вы можете указать то же самое в INI-файле для вашего приложения - смотритеДокументация launch4j по адресу:

http://launch4j.sourceforge.net/docs.html#Additional_jvm_options

2 голосов
/ 25 ноября 2010
  1. "UTF8" должно быть "UTF-8".

  2. Также OutputStreamReader(outputStream, encosingString) броски UnsupportedEncodingException, которые вы должны поймать.

  3. Большая ошибка: никогда не поймать (илипереход к основному) * Exception

    public static void main(String[] args) throws Exception {}
    

    Это не позволило вам увидеть, каково ваше настоящее исключение и где произошло.

1 голос
/ 25 ноября 2010

Эмпирическое правило при отладке проблем кодирования: если у вас есть строковые литералы, отличные от us-ascii, попробуйте заменить их на экранирование Unicode (т.е. BAST\u00d6\u00d6\u00dc\u00dc\u00c4\u00c4). Если проблема исчезнет, ​​у вас будет несоответствие кодировки источника / компилятора.

Например, описанное вами поведение может произойти, если ваша исходная кодировка - Windows-1252, тогда как кодировка компилятора - UTF-8.

0 голосов
/ 24 декабря 2012

я столкнулся с той же проблемой .. и я решил ее java -Dfile.encoding = UTF8 -jar CAP.jar (где CAP - имя файла JAR)

Я сумасшедший пакетный файл. откройте текстовый файл, напишите строку выше и сохраните его как .bat, и он должен работать

0 голосов
/ 25 ноября 2010

Попробуйте "UTF-8" вместо.

...