Дед Мазай
Гений
(58129)
6 лет назад
Как уже написали выше, код не рабочий.
Проблема с кодировками не имеет простого решения, поскольку в Windows используется несколько кодировок одновременно, и в Java для Windows эта проблема не решена на системном уровне. Если ничего не менять, программа правильно работает при запуске из Eclipse (там своя консоль). Чтоб работало в консольном окне Windows, надо делать так:
Scanner sc = new Scanner(System.in, "cp866");
Чтоб работало везде, программа каким-то образом должна получать параметр: какую кодировку следует использовать (или использовать кодировку по умолчанию, если параметр не задан).
Другой способ.
В настройках консоли выбрать TrueType шрифт (это любой, кроме точечного)
Ввести команду:
chcp 1251
После этих манипуляций Java программа будет работать без указания кодировки (только в этом окне консоли).
Босс Босс
Мастер
(1458)
6 лет назад
PrintStream out = new PrintStream(System.out, true, "windows-1251");
out.println("привет");
System.out.println("привет");
В первом случае выводит русский текст, во втором случае при использовании System.out.println абракадабру (привет), как это исправить?
это я нагуглил.
а так помочь ни чем не могу.
Женя ЛевинУченик (158)
6 лет назад
не работает. Проблема в том, что Scanner при считывании русского текста считывает абракадабру
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
ОсЁл ЭтО ИшАк
АяЯаИиШш
АяЯаИиШш
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);
}
}
Выводится не то, что я ввёл. Посоветуйте кодировку, чтобы это исправить