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