Как сделать так, чтобы в консоле выводились русские буквы?
Если я пишу например такой код
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);
}
}
Выводится не то, что я ввёл. Посоветуйте кодировку, чтобы это исправить
Как уже написали выше, код не рабочий.
Проблема с кодировками не имеет простого решения, поскольку в Windows используется несколько кодировок одновременно, и в Java для Windows эта проблема не решена на системном уровне. Если ничего не менять, программа правильно работает при запуске из Eclipse (там своя консоль). Чтоб работало в консольном окне Windows, надо делать так:
Scanner sc = new Scanner(System.in, "cp866");
Чтоб работало везде, программа каким-то образом должна получать параметр: какую кодировку следует использовать (или использовать кодировку по умолчанию, если параметр не задан).
Другой способ.
В настройках консоли выбрать TrueType шрифт (это любой, кроме точечного)
Ввести команду:
chcp 1251
После этих манипуляций Java программа будет работать без указания кодировки (только в этом окне консоли).
javac -encoding utf-8 Hello.java
java Hello
Вывод в Console:
Hello World!
Ява правит интернетом!
файлик в кодировке 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
ОсЁл ЭтО ИшАк
АяЯаИиШш
АяЯаИиШш
Помимо кодировки убедись, что в самой консоли выставлен шрифт, поддерживающий русские символы. В настройках консоли (правой кнопкой).
Такой код кроме ошибки вообще ничего выводить не должен )