Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/187: Рейтинг темы: голосов - 187, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16

Вывод кириллицы в Java

28.03.2014, 21:51. Показов 36770. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер всем. Вкратце обрисую проблему. Я только начинаю писать на Java, поэтому для меня ооочень многое не понятно. Мне дали задание, которое пока кажется немыслимым. В общем, формулировка такова: нужно вывести кириллицу в Java, то есть изменить кодировку. Я нашла эту программу в методичке, но почему-то она не запускается. Помогите пожалуйста понять, в чем проблема и, если можно, объясните, что вообще в ней происходит. Очень нужно, заранее спасибо.
Вот найденный мною код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.*; 
class PrWr{ 
public static void main(String[] args){ 
 
try{ 
BufferedReader br = 
new BufferedReader(new InputstreamReader(System.in, 
"Cp866")); 
PrintWriter pw = new PrintWriter( 
new OutputstreamWriter(System.out, "Cp866"), true); 
String s = "Это строка с русским текстом"; 
System.out.println("System.out puts: " + s); 
pw.println("PrintWriter puts: " + s) ; 
int с = 0; 
pw.println("Посимвольный ввод:"); 
while((с = br.read()) != -1) 
pw.println((char)c); 
pw.println("Построчный ввод:"); 
do{ 
s = br.readLine(); 
pw.println(s); 
}while(!s.equals("q")); 
}catch(Exception e){ 
System.out.println(e); 
} 
} 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2014, 21:51
Ответы с готовыми решениями:

Вывод кириллицы в консоль
Есть программка, считывающая текстовую информацию из текстового файла на экран. Английские буквы считываются без проблем, русские же...

Ошибочный вывод кодировки кириллицы
Нужно ввести русский текст и под каждой буквой вывести порядковый номер этой буквы в соответствии с алфавитом. С прописными буквами все в...

Как включить отображение кириллицы в консоли Java?
Среда разработки Intellij IDEA. Может есть какие-то команды вроде setlocale, как в C++?

12
37 / 37 / 25
Регистрация: 19.11.2012
Сообщений: 197
28.03.2014, 22:14
Java
1
2
3
for (char c = 'а'; c <= 'Я'; c++) {
System.out.println(c);
}
0
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
28.03.2014, 22:32  [ТС]
Я, наверное, не совсем корректно выразила свою мысль. Мне не просто нужно напечатать алфавит, а нужно сделать так, чтобы написанный текст на русском языке выводился корректно, то есть,нужно изменить кодировку. То есть, на данный момент моя просьба заключается в том, чтобы мне объяснили смысл того, что происходит в указанном выше коде. Спасибо))
0
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
29.03.2014, 00:05
Lizavetka,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.io.*; 
 
class PrWr{
    
    public static void main(String[] args){ 
 
        try{ 
            BufferedReader br = 
                    new BufferedReader(new InputStreamReader(System.in, "Cp866")); 
            
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true); 
            
            String s = "Это строка с русским текстом"; 
            System.out.println("System.out puts: " + s); 
            pw.println("PrintWriter puts: " + s);
            
            int c = 0; 
            pw.println("Посимвольный ввод:"); 
            
            while((c = br.read()) != -1) 
                pw.println((char)c); 
            
            pw.println("Построчный ввод:"); 
            
            do{ 
                s = br.readLine(); 
                pw.println(s);
                
            }while(!s.equals("q")); 
            
        }
        catch(Exception e) { 
            System.out.println(e); 
        } 
    } 
}
теперь запускайте в командной строке и увидите результата, кириллица будет выводиться корректно
0
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
29.03.2014, 00:15  [ТС]
Спасибо, работает)) А вы не могли бы объяснить суть программы? Самостоятельно разобраться очень сложно
0
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
29.03.2014, 23:23
Lizavetka,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import java.io.*; 
 
class PrWr{
    
    public static void main(String[] args){ 
 
        /*
         * используем блок try т.к. могут возникнуть исключения
         * при вводе/выводе
         * 
         * */
        try{ 
            /*
             * используем цепные потоки для ввода,
             * которые позволят корректно читать кириллицу
             * 
             * */
            BufferedReader br = 
                    new BufferedReader(new InputStreamReader(System.in, "Cp866")); 
            
            /*
             * используем цепные потоки для вывода,
             * которые позволят корректно выводить кириллицу
             * 
             * */
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true); 
            
            String s = "Это строка с русским текстом"; 
            
            /*
             * для примера выводим кириллицу через стандартный поток
             * и получаем крюкозябру
             * 
             * */
            System.out.println("System.out puts: " + s); 
            
            /*
             * выводим русский текст с поощью ранее созданных поток
             * и получаем ожидаемый результат
             * 
             * */
            pw.println("PrintWriter puts: " + s);
            
            /*
             * цикл для посимвольного ввода/вывода символов 
             * и их корректным отображением 
             * 
             * */
            int c = 0; 
            pw.println("Посимвольный ввод:"); 
            
            while((c = br.read()) != -1) 
                pw.println((char)c); 
            
            pw.println("Построчный ввод:"); 
            
            /*
             * цикл для построчного ввода/вывода строк 
             * и их корректным отображением
             * 
             * */
            do{ 
                s = br.readLine(); 
                pw.println(s);
                
            }while(!s.equals("q")); 
            
        }
        catch(Exception e) { 
            System.out.println(e); 
        } 
    } 
}
как-то так, а вообще, почитайте методичку и литературу, благо информации масса
1
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
31.03.2014, 22:28  [ТС]
Спасибо большое))) Безусловно, я изучаю литературу, просто не все понятно, а спросить не у кого) То есть, я так понимаю, программа сначала выводит какую-то ерунду, а потом уже нормальный текст? Просто у меня почему-то все с точностью до наоборот)
0
51 / 51 / 42
Регистрация: 06.09.2013
Сообщений: 188
01.04.2014, 14:14
Lizavetka, а как вы запускаете программу? через IDE или через командную строку?

Добавлено через 13 минут
Lizavetka, если вы запускаете в eclipse, то да, получите тот результат, который вы описываете, если же создать файл PrWr.java и скомпилировать его через командную строку

Code
1
javac PrWr.java
в итоге Вы получите файл PrWr.class и запустите его через виртуальную машину

Code
1
java PrWr
тогда и получите ожидаемый результат
0
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 16
02.04.2014, 15:30  [ТС]
Да, запускаю через Eclipse. Поняла, спасибо большое)))
0
4 / 4 / 0
Регистрация: 26.04.2013
Сообщений: 124
15.10.2015, 08:32


Вот такая ошибка выходит когда пытаюсь сделать вывод на кириллице
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
15.10.2015, 12:39
RTFM

Кликните здесь для просмотра всего текста
Обрати внимание на throws и подумай, как правильно исправить.
0
4 / 4 / 0
Регистрация: 26.04.2013
Сообщений: 124
15.10.2015, 18:12
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package javaapplication2;
 
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
 
 
/**
* @author Marat Kalyamov
 */
public class JavaApplication2 
{
 
static ArrayList<Sotrudnik> sotrudnik_list = new ArrayList<>();
static BufferedReader br; 
 
    
 
    
    /**
     * @param args the command line arguments
     * @throws java.io.UnsupportedEncodingException
     */
    public static void main(String[] args) throws UnsupportedEncodingException, IOException 
    {
 
        create_new_sotrudnik();
        show_all_sotrudnik();
 
    }
 
    public static void create_new_sotrudnik() throws IOException 
    {
 
 
        Scanner  in = new Scanner(System.in);
        System.out.println("Введите Ф.И.О: ");
        String famimot = br.readLine();
        System.out.println("Введите табельный номер: ");
        String tabel = in.nextLine();
        System.out.println("Введите дату рождения: ");
        String datarojden = in.nextLine();
        System.out.println("Введите название отдела: ");
        String otdel = in.nextLine();
        System.out.println("Введите должность сотрудника: ");
        String doljnost = in.nextLine();
        Sotrudnik tmp = new Sotrudnik(famimot, tabel, datarojden, otdel, doljnost);
        sotrudnik_list.add(tmp);
 
            
    }
    public static void show_all_sotrudnik()
    {
        for (int i = 0; i < sotrudnik_list.size(); i++)
        {
            System.out.println("\nСотрудник: " + i);
            sotrudnik_list.get(i).show_info();
            System.out.println("_________________________________");
        }
 
    }
 
    public JavaApplication2() {
    try {
        JavaApplication2.br = new BufferedReader(new InputStreamReader(System.in, "Cp866"));
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(JavaApplication2.class.getName()).log(Level.SEVERE, null, ex);
    }
    }
 
 
}
Теперь вот такая ошибка:

run:
Введите Ф.И.О:
Exception in thread "main" java.lang.NullPointerException
at javaapplication2.JavaApplication2.create _new_sotrudnik(JavaApplication2.java:51)
at javaapplication2.JavaApplication2.main(J avaApplication2.java:40)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
16.10.2015, 06:48
Цитата Сообщение от frontez Посмотреть сообщение
Теперь вот такая ошибка
Что вполне логично, ты же конструктор выпилил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2015, 06:48
Помогаю со студенческими работами здесь

Читаются не все символы кириллицы в консоли (java, NetBeans)
Программа не читает символы казахского языка (вместо них идут знаки вопроса), например &quot;ғ&quot;, при этом корректно выводит...

Вывод кириллицы
каким компилятором лучше пользоваться.я пользуюсь dev c++, но он в консоле не отображает все что написаное в скобках(тольуо на англиском...

Вывод кириллицы в консоль
Начинаю свое обучение и столкнулся с такой бедой. Из-за строки printf(&quot;C Новым годом!\n&quot;); получаются клюкозябры вида C...

Вывод кириллицы в консоль
Привет, как изменить код что-бы выводилась русская &quot;б&quot; вместо иероглифов? SetConsoleCP(1251); SetConsoleOutputCP(1251); тоже не...

Вывод кириллицы в консоль
Здравствуйте. Вообще-то я занимаюсь явой, но, для общего развития решил освоить кресты. елементарная задача: найти площать треугольника по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru