Проблема греческих символов - без Netbeans - PullRequest
0 голосов
/ 19 сентября 2011

в приложении я записываю несколько строк в файл. Некоторые из них на греческом языке. Когда я делаю этот процесс с Netbeans, все отлично работает. Но когда я пытаюсь запустить его с моим файлом .bat, тот же код записывает греческий текст с этим странным " ?" персонаж. Очевидно, что netbeans что-то регулирует и может писать греческий текст, но я не могу его найти.

Пример записи: BufferedWriter out = new BufferedWriter(new FileWriter(FilePath)); out.write(text); out.close(); Файлы compile.bat и run.bat - самая простая форма, которую они могут получить.

Что я могу сделать, чтобы это исправить?

Ответы [ 5 ]

1 голос
/ 23 сентября 2011

После долгих поисков я решил эту проблему.

В файл .bat просто поместили:

Set JAVA_TOOL_OPTIONS= -Dfile.encoding=UTF8
1 голос
/ 19 сентября 2011

попробуйте с этим:

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(yourFilePath,"UTF8"));
out.write(text); 
out.close();
1 голос
/ 19 сентября 2011

Когда вы говорите, что с NetBeans все в порядке с греческими символами, вы, вероятно, записываете выходные данные в консоль NetBeans, которая представляет собой окно графического интерфейса пользователя, в котором отображаются стандартные выходные данные.Обычно в Windows нет проблем с рендерингом символов в этих средах, поскольку шрифты довольно богаты.

Когда вы говорите, что используете файл .BAT, вы, вероятно, писали в консоль Windows (cmd.exe или Powershell).Вы можете найти справку по настройке консоли Windows для написания текста не ASCII;существует несколько источников, которые объясняют «кодовые страницы» и другие вещи, которые нужно знать.В основном все сводится к тому, чтобы ваша консоль была правильно настроена.

1 голос
/ 19 сентября 2011

Вам нужно вывести в UTF-8 попытку:

try {
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
        new FileOutputStream(FilePath), "UTF8"));
    out.write(text);
    out.close();
} catch (UnsupportedEncodingException e) {
} catch (IOException e) {
}
0 голосов
/ 23 февраля 2016

У меня была та же проблема, и этот код решил ее:

System.setProperty("file.encoding","UTF-8");
Field charset = Charset.class.getDeclaredField("defaultCharset");
charset.setAccessible(true);
charset.set(null,null);

Установка кодировки символов Java по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...