Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать так, чтобы в консоле выводились русские буквы?

Женя Левин Ученик (158), закрыт 6 лет назад
Если я пишу например такой код

import java.util.Scanner;

public class Test{

Scanner sc = new Scanner(System.in);

public static void main(String[] args){
res();
}

public void res(){
String result = sc.nextLine();
System.out.println(result);
}

}
Выводится не то, что я ввёл. Посоветуйте кодировку, чтобы это исправить
Лучший ответ
Дед Мазай Гений (58129) 6 лет назад
Как уже написали выше, код не рабочий.
Проблема с кодировками не имеет простого решения, поскольку в Windows используется несколько кодировок одновременно, и в Java для Windows эта проблема не решена на системном уровне. Если ничего не менять, программа правильно работает при запуске из Eclipse (там своя консоль). Чтоб работало в консольном окне Windows, надо делать так:
Scanner sc = new Scanner(System.in, "cp866");
Чтоб работало везде, программа каким-то образом должна получать параметр: какую кодировку следует использовать (или использовать кодировку по умолчанию, если параметр не задан).

Другой способ.
В настройках консоли выбрать TrueType шрифт (это любой, кроме точечного)
Ввести команду:
chcp 1251
После этих манипуляций Java программа будет работать без указания кодировки (только в этом окне консоли).
Женя ЛевинУченик (158) 6 лет назад
спасибо! работает
Остальные ответы
Босс Босс Мастер (1458) 6 лет назад
PrintStream out = new PrintStream(System.out, true, "windows-1251");
out.println("привет");
System.out.println("привет");

В первом случае выводит русский текст, во втором случае при использовании System.out.println абракадабру (привет), как это исправить?

это я нагуглил.

а так помочь ни чем не могу.
Женя ЛевинУченик (158) 6 лет назад
не работает. Проблема в том, что Scanner при считывании русского текста считывает абракадабру
Denis_69 Искусственный Интеллект (145964) 6 лет назад
Такой код кроме ошибки вообще ничего выводить не должен )
Максим Искусственный Интеллект (218856) 6 лет назад
Помимо кодировки убедись, что в самой консоли выставлен шрифт, поддерживающий русские символы. В настройках консоли (правой кнопкой).
Дед МазайГений (58129) 6 лет назад
Любой шрифт поддерживает русские буквы. Но не всегда.
Максим Искусственный Интеллект (218856) В консоли выставлены шрифты, которые не поддерживают.
Schweik Мыслитель (6353) 6 лет назад
файлик в кодировке UTF-8
...
public class Test {
public static void main(String[] args) {
System.out.println("DEFAULT CHARSET IS: " + Charset.defaultCharset());
System.out.println("ОсЁл ЭтО ИшАк");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println(s);
}
}
javac -cp . -encoding UTF8 Test.java
java -cp . -Dfile.encoding=Cp866 Test

DEFAULT CHARSET IS: IBM866
ОсЁл ЭтО ИшАк
АяЯаИиШш
АяЯаИиШш
Игорь Индык Ученик (117) 4 года назад
javac -encoding utf-8 Hello.java
java Hello
Вывод в Console:
Hello World!
Ява правит интернетом!
Похожие вопросы