Отправляет email-рассылки с помощью сервиса Sendsay

[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.
Вопрос: есть какое-то решение этого дела?
Спасибо!

Ответить   Menelion Elensuule Thu, 20 Feb 2014 00:33:36 +0200 (#2947532)

 

Ответы:

Приветствую всех.

В принципе, все правильно, то есть нужно указать кодировку исходника; а
затем выставить кодовую страницу 65001, но
Есть подозрение, что вы запускаете java из bat-файла.
А надо все делать руками, то есть запустить cmd, сменить кодовую страницу и
запустить java-приложение командой
java MyApp

Успехов. Анатолий.

Ответить   "i_chay" Thu, 20 Feb 2014 09:01:24 +0300 (#2947771)

 

Vande omentaina, "i_chay"!

Нет-нет, из cmd.
Именно так и делаю: открываю Cmd, меняю кодовую страницу, запускаю - и
получаю набор U+FFFD :(.

Ответить   Menelion Elensuule Thu, 20 Feb 2014 14:03:52 +0200 (#2948416)