Ошибка символов Юникода Java в cmd - PullRequest
4 голосов
/ 22 июля 2010

У меня есть следующий класс в Java, который печатает «Hello World» на португальском языке:

public class PrintUnicode {
    public static void main(String[] args) {
        System.out.println("Olá Mundo!");
    }
}

Я использую Eclipse, поэтому я экспортировал проект в Runnable Jar File.После этого я пошел в cmd (Windows 7) и запустил сгенерированный файл jar.

Результат был:

Olß Mundo!

Есть ли простой способ избежать этой ошибки?

1 Ответ

5 голосов
/ 22 июля 2010

Нашел решение.Просто измените на:

public class PrintUnicode {
    public static void main(String[] args) {
        System.console().printf("Olá Mundo!");
    }
}

Ошибка с System.out возникает из-за:

По умолчанию Java кодирует строки, отправленные в System.out, в кодовой странице по умолчанию.В Windows XP это означает преобразование с потерями в кодовую страницу «ANSI».Это прискорбно, потому что командная строка Windows (cmd.exe) может читать и писать символы Юникода.( источник здесь )

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