Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/749: Рейтинг темы: голосов - 749, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 109

Русский язык в командной строке

04.09.2012, 19:37. Показов 148294. Ответов 84
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем ку.

Проблема в заголовке, собственно: вместо русского языка в bat-нике командой echo, я вижу всякую кракозябру.
Пробовал:
Bash
1
2
chcp 1251
chcp 886
Добавлять в реестр CodePage параметр
Ну никак просто. Кто знает, как починить?
Во вложении скрин работы bat-ника
Миниатюры
Русский язык в командной строке  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2012, 19:37
Ответы с готовыми решениями:

Английский язык в командной строке
Только что эксперементируя с кодировками, заметил прикол: если выставить кодировку 861 (Код: chcp 861), то вместо русского перевода cmd...

русский язык в командной строке visual studio x64
Здравствуйте, знаю проблема не новая, но у меня почему то если компилить файл через саму IDE, приписывая в мейне setlocale(LC_ALL,...

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

84
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 13:59
Студворк — интернет-сервис помощи студентам
Начиная с Windows 7, можно просто использовать кодировку 65001 и не заморачиваться вышеупомянутыми ухищрениями. Это конечно же не кодировка win1251, но работает в любом случае из блокнота без лишних редакторов и телодвижений.
Bash
1
2
3
4
@echo off
chcp 65001 >nul
echo Текст
echo Текст в файле>пример.txt
PS. Просьба добавить в шапку данный метод. По кнопке жалоба пока игнор.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 14:28
Цитата Сообщение от TolikD Посмотреть сообщение
Начиная с Windows 7, можно просто использовать кодировку 65001
КЭП, что можно - это всем известно, но это не решает проблему.
Ты, видимо, ничего не знаешь о кодировках и cmd.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 14:40
А, ну да, узнаю логику PHP-шников...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.12.2019, 14:53
Цитата Сообщение от TolikD Посмотреть сообщение
PS. Просьба добавить в шапку данный метод. По кнопке жалоба пока игнор.
И правильно, что игнор. Все доступные способы описаны в закрепленной теме: Русский текст в консоли

Цитата Сообщение от TolikD Посмотреть сообщение
Начиная с Windows 7, можно просто использовать кодировку 65001 и не заморачиваться вышеупомянутыми ухищрениями. Это конечно же не кодировка win1251, но работает в любом случае из блокнота без лишних редакторов и телодвижений.
Можно, но не нужно, так как создаст другие проблемы, с которыми пользователи вернутся сюда же на форум с пачкой новых тем.
1
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 18:21
Цитата Сообщение от Garry Galler Посмотреть сообщение
А, ну да, узнаю логику PHP-шников...
дык легких путей не ищем наверна ))

Добавлено через 6 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
Можно, но не нужно, так как создаст другие проблемы
Это да, я поспешил с утверждением, что на win7 полная поддержка, сказывается что семерку давно не юзал.
Цитата Сообщение от Dragokas Посмотреть сообщение
И правильно, что игнор.
Этот метод тоже имеет право на существование. Что мешает указать про использование win8+ ? Может и есть какие тонкости, но я не думаю, что кто-то собрался в cmd обрабатывать многобайтовую кодировку. А для вывода кириллицы "по быстрому" вполне сгодится.

Добавлено через 5 минут
Garry Galler,
Цитата Сообщение от Garry Galler Посмотреть сообщение
КЭП, что можно - это всем известно, но это не решает проблему
Это решает проблему. У меня для задач вывести echo, прокрутить каталог в цикле проблем ни разу не возникало.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Ты, видимо, ничего не знаешь о кодировках и cmd.
Дружище! Судя по скрину, который ты приводишь, сам же и облажался.
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
07.12.2019, 18:32
у меня на винде 8.1 не работает
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 18:37
Цитата Сообщение от TolikD Посмотреть сообщение
Дружище! Судя по скрину, который ты приводишь, сам же и облажался.
Нет, дружище - облажался именно ты. Потому что я знаю в чем проблема, а ты - нет.
Кодировки файла и консоли должны совпадать. Файл в 866 - консоль в 866. Файл в 1251, консоль в 1251. Файл в UTF-8, консоль в 65001.
Кста, ты ведь не в курсе, что блокнот не умеет создавать файлы в UTF-8 без BOM? Ну вот теперь - запиши себе это куда-нить. А кодировка UTF-8 с BOM, в которую конвертирует блокнот, для батников непригодна.

Итого: не столь важно какую кодировку использовать. Важно их совпадение в источнике и приемнике. Кроме того, в cmd важно при использовании многобайтных символов использовать юникодные шрифты, иначе опять получим бяку в консоли. Хотя, впрочем, бяку мы все равно так или иначе получим, потому что виндовые юникодные шрифты стандарт Unicode поддерживают только на 1/1000 часть. И существует множество, символов которые ты никогда не сможешь вывести в cmd.
Но PHP-ники об этом вряд ли не подозревают...
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
07.12.2019, 18:46
нам то простым людЯм что делать если хочется на винде 8.1
вывести из батника , на русском "Привет, как дела "
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 18:47
Garry Galler, Я прекрасно знаю, как работает блокнот. И я не вижу проблемы использовать UTF в блокноте для простейших действий. К тому же, ты привёл скрин с запуском в кодировке ANSI, а не UTF. Поэтому у тебя квадраты вместо русского.
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
07.12.2019, 18:50
вместо того чтобы загаживать тему, представьте простой и понятный код,
а "остроумием" своим идите в др. место меряйтесь
1
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 19:08
Цитата Сообщение от TolikD Посмотреть сообщение
И я не вижу проблемы использовать UTF в блокноте для простейших действий.
Цитата Сообщение от Garry Galler Посмотреть сообщение
кодировка UTF-8 с BOM, в которую конвертирует блокнот, для батников непригодна
Цитата Сообщение от TolikD Посмотреть сообщение
К тому же, ты привёл скрин с запуском в кодировке ANSI, а не UTF.
Естественно. Потому по умолчанию все файла на windows создаются именно в этой кодировке. Тем более, встроенным блокнотом.
Ты что-то написал в своем первом посте о том, в какой кодировке был твой батник? Нет. Отсюда следовал вывод: о, оказывается можно просто изменить кодировку консоли на 65001 и любой текст в любой исходной кодировке чудом будет отображен правильно в консоли. Не будет. Причины я описал.

Цитата Сообщение от TolikD Посмотреть сообщение
что у тебя мозгов не хватит сделать запуск в UTF.
Ту меня уморил :-) Я это сделал специально, чтобы показать что твой код бесполезен и неверно трактуется (в чем ты сам же и виноват).
Кроме того, после переключения кодировки консоли на 65001 вывод всех (большинства?) встроенных команд автоматически переключается на английский. Нужно ли это пользователям? Ожидаемое ли это поведение для них?

Вот прочти это на досуге. Это из статьи разработчика компании microsoft (статья 2018 года):
Alas, the Windows Console is not (currently) able to support UTF-8 text!

Windows Console was created way back in the early days of Windows, back before Unicode itself existed! Back then, a decision was made to represent each text character as a fixed-length 16-bit value (UCS-2). Thus, the Console’s text buffer contains 2-byte wchar_t values per grid cell, x columns by y rows in size.

While this design has supported the Console for more than 25 years, the rapid adoption of UTF-8 has started to cause problems:

One problem, for example, is that because UCS-2 is a fixed-width 16-bit encoding, it is unable to represent all Unicode codepoints.

Another related but separate problem with the Windows Console is that because GDI is used to render Console’s text, and GDI does not support font-fallback, Console is unable to display glyphs for codepoints that don’t exist in the currently selected font!
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
07.12.2019, 19:16
Цитата Сообщение от Garry Galler Посмотреть сообщение
потому что виндовые юникодные шрифты
что интересно ( уже писал об этом, но лень искать ), никаких 'виндовых' шрифтов не существует,
производители ОС шрифты покупают у специализированных компаний. У MacOS и Windows Unicode-шрифты от одной и той же компании, вот только под MacOS они работают, а под Windows нет ( с математическими символами я развлекался ).
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 19:23
Цитата Сообщение от Garry Galler Посмотреть сообщение
был твой батник?
это мой батник, который я использую в повседневке, шо ж так мимо всё

Цитата Сообщение от Garry Galler Посмотреть сообщение
и любой текст в любой исходной кодировке чудом будет отображен правильно в консоли
Я этого не утверждал. И специально упомянул, что это не win кодировка.

Цитата Сообщение от Garry Galler Посмотреть сообщение
Я это сделал специально
Сомневаюсь, больше похоже на оправдание

Цитата Сообщение от Garry Galler Посмотреть сообщение
неверно трактуется
Вот это ближе к делу и это другой совершенно вопрос. Но ты на 100% утверждаешь, что код нерабочий, как раз в этом ты не прав. Не допускай ошибки, не спеши заведомо утверждать.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 19:26
Цитата Сообщение от volodin661 Посмотреть сообщение
вот только под MacOS они работают, а под Windows нет
Ну да, как и написал камрад Rich из команды microsoft
поскольку GDI используется для отображения текста консоли, а GDI не поддерживает font-fallback, консоль не может отображать глифы для кодовых точек, которые не существуют в текущем выбранном шрифте
То есть источник проблемы - в ядре графической подсистемы Windows.
Еще он написал, что в команде windows 10 идут постоянные работы над решением этой проблемы.
https://devblogs.microsoft.com... xt-buffer/

------------------------------------------------------------------------------
Цитата Сообщение от TolikD Посмотреть сообщение
это мой батник, который я использую в повседневке,
И он у тебя да-да-дам - в кодировке UTF-8 без BOM!
Ты разницу все еще не понял? Хотя, какая мне разница... Бесполезно объяснять тем кто в танке.


Цитата Сообщение от TolikD Посмотреть сообщение
Сомневаюсь
Мимо. Беседа окончена.
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
07.12.2019, 19:32
Цитата Сообщение от Garry Galler Посмотреть сообщение
То есть источник проблемы - в ядре графической подсистемы Windows.
А у всех OS проблемы. Я не видел ни одной приемлемой реализации юникода в консоли.
Вывод - да, а вот с вводом проблемы у всех.
1
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 19:47
Цитата Сообщение от Garry Galler Посмотреть сообщение
И он у тебя да-да-дам - в кодировке UTF-8 без BOM!
И на этой весёлой ноте приведу твои же слова
Цитата Сообщение от Garry Galler Посмотреть сообщение
ты ведь не в курсе, что блокнот не умеет создавать файлы в UTF-8 без BOM?
Однако может, если это винда 10. Но и в семёрке 3 байта в начале не помеха. Специально проверил все свои скрипты, отработали практически без правок.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 20:04
Цитата Сообщение от TolikD Посмотреть сообщение
Однако может, если это винда 10.
Вот так и надо было писать: "при условии что у вас (вдруг?) windows 10, вы можете создавать файлы батников в кодировке UTF-8 без BOM посредством стандартного блокнота (который ранее этого не умел) и использовать переключение консоли на кодировку 65001 (внезапно!) для вывода кириллицы".
КЭП, ты о чем вообще? В батниках испокон веков используется кодировка 866.
Какой смысл всех этих действий с chcp 65001? Каждый работающий с батниками знает как дважды два - используй батник в кодировке 866 и будет тебе счастье с выводом русского текста.
Тебе сразу ясно дали понять: "Можно, но не нужно, так как создаст другие проблемы, с которыми пользователи вернутся сюда же на форум с пачкой новых тем."

Цитата Сообщение от TolikD Посмотреть сообщение
Но и в семёрке 3 байта в начале не помеха
Ага. Тут каждый сам решает - быть ему ССЗБ или все-таки делать как принято.
0
 Аватар для TolikD
117 / 81 / 36
Регистрация: 30.07.2017
Сообщений: 371
07.12.2019, 20:11
Garry Galler, Это бесполезный спор, лишь обменялись любезностями. К тому же, я уже, если вдруг не можешь читать внимательно, оговорился в ответе Dragokas. И это, должно быть, специальная тема для обсуждения вопроса, и тут не должно быть преград для внесения предложений, какими бы абсурдными они не казались.
0
 Аватар для volodin661
7094 / 2325 / 353
Регистрация: 10.12.2013
Сообщений: 8,027
07.12.2019, 20:26
Цитата Сообщение от TolikD Посмотреть сообщение
Это бесполезный спор
бесполезны сами батники.
причём с самого своего рождения.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.12.2019, 20:27
Цитата Сообщение от TolikD Посмотреть сообщение
какими бы абсурдными они не казались
А если кажутся именно таковыми?
Цитата Сообщение от TolikD Посмотреть сообщение
не должно быть преград для внесения предложений
Преграды на то и нужны, чтобы форум не превращался в мусорку из бесполезных тем.
Вот ты то, наконец, осознал, степень бесполезности своего первого поста?
Суммирую: ты написал то, что и все и так знают. Да, можно использовать (для каких-то особых случаев) кодировку 65001 в консоли (и батник в UTF-8 без BOM). Все.


P.S. Господа модераторы - можете зачистить наши посты, вплоть до первого поста TolikD в этой теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2019, 20:27

Русский язык в строке ошибок компилятора
Подскажите, как изменить язык отчета об ошибках с английского на русский? Программа Dev C++. с русским языком в консоле разобрался, а...

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский текст без сбитой кодировки?

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

Русский язык
В общем у меня такая проблема , имеется код , в котором нужно что бы выводились русские буквы (имеется ввиду что без setlocale русские...

Русский язык
Здравствуйте! Я практикуюсь в создании веб сайтов. Когда я писал сайт и тестировал его на локальном сервере, то всё работало хорошо, но...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru