System chcp 1251 nul для чего
System chcp 1251 nul
Команда CHCP используется для просмотра или изменения текущей кодовой страницы в окне командной строки Windows. Кодовая страница (Code Page или сокращенно CP) определяет соответствие между двоичным кодом и соответствующим ему символом, отображаемом на экране. Для кодирования текстов на русском языке (то есть букв кириллицы) наиболее широко применяются следующие кодовые страницы:
– Windows-1251, она же Microsoft code page 1251 (CP1251) в операционных системах семейства Windows;
– Кодовая страница CP866, она же IBM code page 866 — в операционных системах семейства DOS, а также в приложениях командной строки Microsoft Windows;
Примеры использования команды CHCP:
chcp – отобразить текущую кодовую страницу.
chcp 1251 – установить кодовую страницу, соответствующую Windows-кодировке.
chcp 866 – установить кодовую страницу, соответствующую DOS-кодировке.
При создании командных файлов, необходимо учитывать то обстоятельство, что текст на русском языке должен быть представлен в DOS-кодировке.
В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет. Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».
Тем, кто ещё не понимает, о чём проблема, то вот Вам:
А тут было написано:
Но никто ничего не понял.
В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.
1. Настройка консоли в батнике
Сразу для тех, кто пишет chcp 1251 лучше написать это:
Первый способ устранения проблемы, это Notepad++. Для этого Вам нужно открыть Ваш батник таким способом:
Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:
Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.
2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.
Первый способ непосредственно Notepad++, но а если нужно сначала одну кодировку, а потом другую?
Сразу для использующих chcp 1251 пишите это:
Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C++).
Если же не сработает:
3. Изменение chcp 1251
Если же у Вас батник, то напишите в начало:
Теперь у Нас будет нормальный вывод в консоль. На других языках (С++):
4. Сделать жизнь мёдом
При использовании данного способа Вы не сможете:
Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Здравствуйте.
В консольных программах не выводятся русские символы.
Думаю, виновата сама консоль — различная кодировка в консоли (CP-866) и Dev-е (CP-1251).
В нормальных текстовых редакторах всегда менял кодировку в настройках, тут не нашел.
Короче, может нужно менять кодировку в консоли, либо в Dev-e. Как это сделать?
Благодарю за советы.
> Ну и если используешь printf, то юзай так:
printf(«%lc
«, 0x0450);
Впрочем, лучше из консоли, так правильнее.
Спасибо Вам за помощь)
using namespace std;
int main() nul»);
cout
#include
chcp 1251 nul что это
Команда CHCP используется для просмотра или изменения текущей кодовой страницы в окне командной строки Windows. Кодовая страница (Code Page или сокращенно CP) определяет соответствие между двоичным кодом и соответствующим ему символом, отображаемом на экране. Для кодирования текстов на русском языке (то есть букв кириллицы) наиболее широко применяются следующие кодовые страницы:
— Windows-1251, она же Microsoft code page 1251 (CP1251) в операционных системах семейства Windows;
— Кодовая страница CP866, она же IBM code page 866 — в операционных системах семейства DOS, а также в приложениях командной строки Microsoft Windows;
Примеры использования команды CHCP:
chcp — отобразить текущую кодовую страницу.
chcp 1251 — установить кодовую страницу, соответствующую Windows-кодировке.
chcp 866 — установить кодовую страницу, соответствующую DOS-кодировке.
При создании командных файлов, необходимо учитывать то обстоятельство, что текст на русском языке должен быть представлен в DOS-кодировке.
Выполняю cmd и в нем set, хочу узнать USERNAME. Но оно показывается в непонятной кодировке.
chcp 866; chcp 1251; chcp 65001 — не помогали.
Оказывается надо в свойствах самого cmd выбрать шрифт Lucida Console. Только так можно получить нормальный текст на русском языке.
Спасшая статья:
Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).
Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)
Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).
Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Luc >ОК.
Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.
Для изменения кодировки так же применим chcp в следующем формате:
Где – это цифровой параметр нужного шрифта, например,
1251 – Windows (кириллица);
Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет. Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».
Тем, кто ещё не понимает, о чём проблема, то вот Вам:
А тут было написано:
Но никто ничего не понял.
В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.
1. Настройка консоли в батнике
Сразу для тех, кто пишет chcp 1251 лучше написать это:
Первый способ устранения проблемы, это Notepad++. Для этого Вам нужно открыть Ваш батник таким способом:
Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:
Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.
2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.
Первый способ непосредственно Notepad++, но а если нужно сначала одну кодировку, а потом другую?
Сразу для использующих chcp 1251 пишите это:
Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C++).
Если же не сработает:
3. Изменение chcp 1251
Если же у Вас батник, то напишите в начало:
Теперь у Нас будет нормальный вывод в консоль. На других языках (С++):
4. Сделать жизнь мёдом
При использовании данного способа Вы не сможете:
Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Что означают эти функции?
Добавлено через 40 минут
ещё сразу вопрос, почему в этой программе нет функции memset() для обнуления памяти
Объяснить, что означают строки кода
float res = 0; res += f(a); res += f(b); res += f((a + b)/2); res /=3; объясните.
3)Зачем обнулять? Вы выделили диапазон памяти для массива и сразу же его заполнили.
Добавлено через 1 минуту
Это работает?
Adrian_One, всё работает, я просто спросил. Это язык Си.
Добавлено через 8 минут
Adrian_One, на счёт memset().. у нас в методичке просто сказано:
после использования функции malloc всегда проверять, успешно ли выделилась память! (проверять указатель на NULL).
После выделения память всегда нужно инициализировать! (memset())
вообще-то это одномерный массив, а двумерным он «становится» из-за магии указателей (a + i * m + j) и *(a + i * m + j) в циклах.
2 гетчара из-за кривизны функции scanf(), которая любит оставлять после себя символ ‘\n’ в потоке ввода.
я не это имел в виду, к двумерному массиву int ** a; вы можете обращаться стандартным способом: a[i][k], однако к массиву выделенному таким образом данная «магия» не применима, поскольку он является одномерным, т.е. int * a; и обращаться к нему получится только как a[i] без доступа ко «второму измерению» штатными средствами. Для чего используется пляска с бубном и указателями.
Вообще какая-то странная у вас тяга к исчерпывающим ответам, так и давали бы сами действительно исчерпывающий ответ, к которому никаких комментариев не нужно.
Вывод кириллицы в консоли
Пробую вывести тесте в консоли в кириллице наиболее простым и универсальным способом (без написания дополнительных функций)- ничего не получается. Перепробоавл все известные мне способы:
23 ответа
В чем проект написан/собираешь?
Проект полностью создается в Dev-C++ 5.2.0.0. Пытался делать его в Юникод, но не нашёл в Dev-C++ такой возможности.
Нет, просто, если я в таком коде:
/*
OemToChar() для возвращаемого из cin
*/
using namespace std ;
cout «Введите строку \n » ;
OemToChar ( str, str ) ;
cout «Введена str: » str endl ;
уберу OemToChar, то перековеркается вывод последний.
А Вам может поможет материал с этого сайта, где обсуждалась эта проблема (здесь). Возможно у Вас сработает ф-ция SetConsoleCP(1251).
Заработало! И ввод и вывод. Но только для Utf-8. С win1251 отпал даже вывод :). Для юникод:
//Codec for this source is UTF-8
using namespace std ;
int main ( ) <
setlocale ( LC_ALL, «.OCP» ) ;
wchar_t prompt [ 21 ] = L «Введите строку. » ;
wstring wstr ;
wcout prompt endl ;
wcin >> wstr ;
wcout L «Введено: » wstr ;
Методом «тыка» удалось и Win1251 победить:
//Codec for this source is Win1251
using namespace std ;
int main ( ) <
setlocale ( LC_ALL, «.OCP» ) ;
char prompt [ 21 ] = «Введите строку. » ;
wstring str ;
wcout prompt endl ;
wcin >> str ;
wcout «Введено: » str ;
А у меня в этом коде:
#include
#include //для std::setlocale()
int main ( )
<
std :: setlocale ( LC_ALL, «» ) ;
std :: wcout L «Привет, мир!» std :: endl ;
>
А как Вы в Code::Blocks в UTF переводите?
Хотя, конечно, это гиморно очень. GCC что-то ни один способ, кроме написания отдельной функции, не принимает. А хочется универсальности под любой компилятор и поменьше букововк в коде
Нормально всё «кириллизуется» через использование setlocale(LC_ALL, «.OCP») и std::wcout.
Но вот есть строка
const string x = = «Привет, » + name + «!»;
, на которой этот вроде бы рабочий костыль вылетает (т.е. выводятся опять кракозябры). Т.е.
std::wcout
Вобщем, вот такое решение подсказывает коллективный разум (вроде работает всегда и везде). Т.е. полностью сплагиаченный код:
#include
#include
#include
#include
#include
using namespace std ;
// Перекодировщики из cp1251 в 866 и обратно функциями WinAPI: CharToOem() и OemToChar()
namespace details <
int main ( )
<
string name ;
cout oemFromAnsi ( «Введите Ваше имя: » ) ;
cin >> name ;
cout endl ;
// Если name не обработать с помощью ansiFromOem, то значение name отобразится кракозябрами
string greeting = «Привет, » + ansiFromOem ( name ) + «!» ;
cout oemFromAnsi ( greeting ) ;
return 0 ;
>
//Codec for this source is UTF-8
#include
#include
#include
#include
using namespace std ;
setlocale ( LC_ALL, «.OCP» ) ;
wchar_t prompt [ ] = L «Введите слово: » ;
wstring wstr ;
wcout prompt ;
wcin >> wstr ;
wcout L «Введено: » wstr endl endl ;
wstring wstr1 = L «Введите ваше имя: » ;
wcout wstr1 ;
wstring n ;
wcin >> n ;
wstring ans = L «Привет, » + n + L «!» ;
wcout ans endl endl ;
Будет работать и в Linux, если вместо setlocale(LC_ALL, «.OCP») написать setlocale(LC_ALL, «») (установка системной локали). Можно вообще сделать код универсальным через условную компиляцию. Вроде такого:
#define LINUX_CON //если Линукс.
using namespace std ;
int main ( ) <
#ifdef LINUX_CON
setlocale ( LC_ALL, «» ) ; //системная
#else
setlocale ( LC_ALL, «.OCP» ) ; //OEM
#endif
.
и т.д.,как ранее
//Кодировка файла Windows-1251
#include
#include
#include
//При использовании функций настройки консоли русские буквы будут отображаться
//правильно, если для консольного окна выбран шрифт Lucida Console. Для выбора
//шрифта нужно щелкнуть правой кнопкой мыши по заголовку окна, выполнить команду
//Свойства, а затем на вкладке Шрифт выбрать нужный шрифт.
//По материалу статьи:
//»Локализация консольных приложений в языке С++» В.Л.Тарасов
using namespace std ;
int main ( ) <
SetConsoleCP ( 1251 ) ;
SetConsoleOutputCP ( 1251 ) ;
char Name [ 100 ] ;
cout «Имя: » ;
cin >> Name ;
cout «Привет, » Name endl ;
//Кодировка файла Windows-1251
//Работает, если шрифт в консоли Lucida Console
#include
#include //для system
#include
using namespace std ;
Chcp 1251 nul что это
Команда CHCP используется для просмотра или изменения текущей кодовой страницы в окне командной строки Windows. Кодовая страница (Code Page или сокращенно CP) определяет соответствие между двоичным кодом и соответствующим ему символом, отображаемом на экране. Для кодирования текстов на русском языке (то есть букв кириллицы) наиболее широко применяются следующие кодовые страницы:
– Windows-1251, она же Microsoft code page 1251 (CP1251) в операционных системах семейства Windows;
– Кодовая страница CP866, она же IBM code page 866 — в операционных системах семейства DOS, а также в приложениях командной строки Microsoft Windows;
Примеры использования команды CHCP:
chcp – отобразить текущую кодовую страницу.
chcp 1251 – установить кодовую страницу, соответствующую Windows-кодировке.
chcp 866 – установить кодовую страницу, соответствующую DOS-кодировке.
При создании командных файлов, необходимо учитывать то обстоятельство, что текст на русском языке должен быть представлен в DOS-кодировке.
Выполняю cmd и в нем set, хочу узнать USERNAME. Но оно показывается в непонятной кодировке.
chcp 866; chcp 1251; chcp 65001 – не помогали.
Оказывается надо в свойствах самого cmd выбрать шрифт Lucida Console. Только так можно получить нормальный текст на русском языке.
Спасшая статья:
Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).
Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)
Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).
Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Luc >ОК.
Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.
Для изменения кодировки так же применим chcp в следующем формате:
Где – это цифровой параметр нужного шрифта, например,
1251 – Windows (кириллица);
Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет. Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».
Тем, кто ещё не понимает, о чём проблема, то вот Вам:
А тут было написано:
Но никто ничего не понял.
В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.
1. Настройка консоли в батнике
Сразу для тех, кто пишет chcp 1251 лучше написать это:
Первый способ устранения проблемы, это Notepad++. Для этого Вам нужно открыть Ваш батник таким способом:
Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:
Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.
2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.
Первый способ непосредственно Notepad++, но а если нужно сначала одну кодировку, а потом другую?
Сразу для использующих chcp 1251 пишите это:
Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C++).
Если же не сработает:
3. Изменение chcp 1251
Если же у Вас батник, то напишите в начало:
Теперь у Нас будет нормальный вывод в консоль. На других языках (С++):
4. Сделать жизнь мёдом
При использовании данного способа Вы не сможете:
Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.