Java-код не отображается правильно в окнах (содержит греческие предложения)

58
8

Я только что написал программу для своего друга и содержит греческий текст на println. Я написал файл в Linux с кодировкой UTF-8, но когда он открывает его на Eclipse (Windows), ни одна из греческих букв не отображается правильно. Есть ли способ сделать эту работу? Я помню, что страница греческого кода для окон - 737, но как я могу сказать компилятору использовать эту кодовую страницу? Спасибо :)

спросил(а) 2017-03-14T23:31:00+03:00 2 года, 8 месяцев назад
2
Решение
43

Я собираюсь предположить, что ваш друг запускает программу из командной строки, а Windows выводит мусор из байтов UTF-8.

Это связано с тем, что cmd.exe по умолчанию не настроен на кодовую страницу UTF-8 для обратной совместимости с кодовой страницей Windows 1252.

Чтобы установить cmd.exe для использования UTF-8, используйте следующую команду:

chcp 65001

Возможно, вам придется менять шрифты, например, на Lucida Console.

На самом деле это дубликат: символы Unicode в командной строке Windows - как?

ОБНОВИТЬ

Чтобы установить кодировку для текущего файла в Eclipse, вы должны перейти в Edit → Set Encoding.

Как правило, при совместном использовании данных вы собираете его в проекте Eclipse, чтобы информация, такая как кодировка, сохранялась вместе с исходным файлом. Eclipse наследует кодировку от чего-то, называемого "контейнером", а не использует эвристику для определения правильной кодировки файла.

Я не могу сказать, почему именно UTF-8 по умолчанию не по умолчанию, возможно, по умолчанию он также относится к кодовой странице Windows, но редактирование файлов в Eclipse вне проекта является необычным.

Если вы используете Eclipse для разработки, поместите свой источник в проект и поделитесь им или используйте текстовый редактор, который может автоматически обрабатывать обнаружение кодировки, например Notepad++ или Sublime Text.

ответил(а) 2017-03-14T23:51:00+03:00 2 года, 8 месяцев назад
Еще 1 ответ
31

Трудно получить закодированные строки через цепочку сборки, потому что каждая программа, которая когда-либо затрагивает ваш исходный файл, должна понимать и сохранять кодировку utf8. В англоязычном мире слишком много обычных инструментов, которые в этом отношении не надежны.


Мое решение - использовать кодировку ascii, разрешить разметку UTF8 в исходных файлах и декодировать UTF8 в unicode во время выполнения.

ответил(а) 2017-03-14T23:43:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема