[prg] Java: юникод в консоли Windows
Vande omentaina, Programming!
Народ, скажите, а есть возможность получить вывод не-ASCII символов
в консоли Windows, если приложение написано на Java?
Простейший пример:
class Hw {
public static void main(String[] args) {
// Не знаю, как сервер пропустит, но здесь есть A umlaut
// и I украинское
System.out.println("Hej va:rlden! Привiт, свiте!");
}
}
Если ничего не делать с настройками консоли (только шрифт поменять на
Lucida Console), A umlaut выдаётся в виде двух символов, первый из
которых U+251C, а второй - Д русская. Кириллица идёт в виде кириллицы
же, но перемешанной.
Если сказать компилятору, что это utf-8 (я так понимаю, это таки
делать надо):
javac -encoding utf8 Hw.java
то A umlaut выдаётся банальным вопросиком, а кириллица снова
перемешана, но уже в другом порядке.
Если сделать
chcp 65001
то A umlaut снова выдаётся вопросиком, а кириллица -
последовательностью из символов U+FFFD и U+2C.
Вопрос: есть какое-то решение этого дела?
Спасибо!
Приветствую всех.
В принципе, все правильно, то есть нужно указать кодировку исходника; а
затем выставить кодовую страницу 65001, но
Есть подозрение, что вы запускаете java из bat-файла.
А надо все делать руками, то есть запустить cmd, сменить кодовую страницу и
запустить java-приложение командой
java MyApp
Успехов. Анатолий.