Непонятные символы при вводе русских букв (кириллицы) в Java

Рейтинг: 3Ответов: 2Опубликовано: 25.01.2015
import java.util.Scanner;

public static void main(String[] args) {
     Scanner n = new Scanner (System.in);
     String fio;
     System.out.print("Введите Фамилию :");
     fio = n.nextLine();
     System.out.println(fio);
}

Введите Фамилию: Иванов Денис Иванович
������ ����� ��������
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 19 секунд)

При вводе русских букв выводит непонятные символы. Как исправить? Подскажите, если можно, пример, работаю в NetBeans IDE 8.0.1.

Ответы

▲ 4

Ваша проблема описана тут.

Если вы пишете в NetBeans, то вам необходимо зайти в свойства проекта и поменять кодировку на windows-1251. После этого данный код работает корректно:

введите сюда описание изображения


Либо как вариант указать кодировку вводимых символов сразу:

public static void main(String[] args) throws UnsupportedEncodingException, IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in,"Cp1251"));
    System.out.println("Введите ФИО:");
    //Scanner in = new Scanner(System.in);
    String s = br.readLine();
    System.out.println(s);
}
▲ 1

Если пишешь в Netbeans -

Scanner scanner = new Scanner (System.in, "Cp866");

Без проблем будет читать русские буквы.