Кракозябры вместо русских букв в windows 10 cmd

В статье речь идёт о том как сменить кодировку в cmd? как корректно отобразить Русский текст cmd.

Время чтение: 4 минуты
2014-01-19

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него  следующие строки!

@Echo off

  echo.

     echo ПРИВЕТ МИР

    echo.

Pause

Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»

Теперь запускаем файл 1.bat и результат будет такого вида.

Русский текст в CMD

Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.

Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!

Решения проблемы с кодировкой в CMD. 1 Способ.

Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).

Скачиваем и устанавливаем на свой компьютер «Notepad++».

После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.

@Echo off

  echo.

     echo ПРИВЕТ МИР

    echo.

Pause

Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»

cmd сменить кодировку

и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.

cmd смена кодировки

Как видим, текст на Русском в CMD отобразился, как положено.

Решения проблемы с кодировкой в CMD. 2 Способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача: Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

@Echo off

Help > C:HelpCMD.txt

Pause

После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:

поменять кодировку cmd

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

Теперь содержимое кода будет такое.

@Echo off

chcp 1251 >nul

Help > C:HelpCMD.txt

Pause

После выполнения «Батника» результат будет такой:

поменять кодировку cmd

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

Автор очень хорошо описал принцип. ! Но это неудобно.
Нужно бы добавить. Если автор добавит это в статью то это будет Good.
Создаём файл .reg следующего содержания:
——
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT.batShellNew]
«FileName»=»BATНастроенная кодировка.bat»
——
Выполняем.
——
Топаем в %SystemRoot%SHELLNEW
Создаём там файл «BATНастроенная кодировка.bat»
Открываем в Notepad++
Вводим любой текст. (нужно!) Сохраняемся.
Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся.
———-
Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows».
Переименовываем. Открываем в Notepad++. Пишем батник.
В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».


Windows

  • 09.06.2020
  • 61 707
  • 6
  • 150
  • 147
  • 3

Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

  • Содержание статьи
    • Исправляем проблему с кодировкой с помощью смены шрифта
    • Исправляем проблему с кодировкой с помощью смены кодировки
    • Комментарии к статье ( 6 шт )
    • Добавить комментарий

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:

Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.

Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp, после ввода данной команды необходимо нажать Enter.

Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp <код_новой_кодировки>, где <код_новой_кодировки> — это сам код кодировки, на которую мы хотим переключиться. Возможные значения:

  • 1251 — Windows-кодировка (Кириллица);
  • 866 — DOS-кодировка;
  • 65001 — Кодировка UTF-8;

Т.е. для смены кодировки на DOS, команда примет следующий вид:

chcp 866

Для смены кодировки на UTF-8, команда примет следующий вид:

chcp 65001

Для смены кодировки на Windows-1251, команда примет следующий вид:

chcp 1251

Utf-16 on cmd.exe

Yeah,I’ve just resolved my problem. It was a fault of default font in cmd.exe which can’t manage unicode signs. To fix it(windows 7 x64 pro):

  1. Open/run cmd.exe
  2. Click on the icon at the top-left corner
  3. Select properties
  4. Then “Font” bar
  5. Select “Lucida Console” and OK.
  6. Write Chcp 10000 at the prompt
  7. Finally dir /b

Enjoy your clean UTF-16 output with hearts, Chinese signs, and much more!

What encoding/code page is cmd.exe using?

Yes, it’s frustrating—sometimes type and other programs
print gibberish, and sometimes they do not.

First of all, Unicode characters will only display if the
current console font contains the characters
. So use
a TrueType font like Lucida Console instead of the default Raster Font.

But if the console font doesn’t contain the character you’re trying to display,
you’ll see question marks instead of gibberish. When you get gibberish,
there’s more going on than just font settings.

When programs use standard C-library I/O functions like printf, the
program’s output encoding must match the console’s output encoding
, or
you will get gibberish. chcp shows and sets the current codepage. All
output using standard C-library I/O functions is treated as if it is in the
codepage displayed by chcp.

Matching the program’s output encoding with the console’s output encoding
can be accomplished in two different ways:

However, programs that use Win32 APIs can write UTF-16LE strings directly
to the console with
WriteConsoleW.
This is the only way to get correct output without setting codepages. And
even when using that function, if a string is not in the UTF-16LE encoding
to begin with, a Win32 program must pass the correct codepage to
MultiByteToWideChar.
Also, WriteConsoleW will not work if the program’s output is redirected;
more fiddling is needed in that case.

type works some of the time because it checks the start of each file for
a UTF-16LE Byte Order Mark
(BOM)
, i.e. the bytes 0xFF 0xFE.
If it finds such a
mark, it displays the Unicode characters in the file using WriteConsoleW
regardless of the current codepage. But when typeing any file without a
UTF-16LE BOM, or for using non-ASCII characters with any command
that doesn’t call WriteConsoleW—you will need to set the
console codepage and program output encoding to match each other.


How can we find this out?

Here’s a test file containing Unicode characters:

ASCII     abcde xyz
German    äöü ÄÖÜ ß
Polish    ąęźżńł
Russian   абвгдеж эюя
CJK       你好

Here’s a Java program to print out the test file in a bunch of different
Unicode encodings. It could be in any programming language; it only prints
ASCII characters or encoded bytes to stdout.

import java.io.*;

public class Foo {

    private static final String BOM = "ufeff";
    private static final String TEST_STRING
        = "ASCII     abcde xyzn"
          "German    äöü ÄÖÜ ßn"
          "Polish    ąęźżńłn"
          "Russian   абвгдеж эюяn"
          "CJK       你好n";

    public static void main(String[] args)
        throws Exception
    {
        String[] encodings = new String[] {
            "UTF-8", "UTF-16LE", "UTF-16BE", "UTF-32LE", "UTF-32BE" };

        for (String encoding: encodings) {
            System.out.println("== "   encoding);

            for (boolean writeBom: new Boolean[] {false, true}) {
                System.out.println(writeBom ? "= bom" : "= no bom");

                String output = (writeBom ? BOM : "")   TEST_STRING;
                byte[] bytes = output.getBytes(encoding);
                System.out.write(bytes);
                FileOutputStream out = new FileOutputStream("uc-test-"
                      encoding   (writeBom ? "-bom.txt" : "-nobom.txt"));
                out.write(bytes);
                out.close();
            }
        }
    }
}

The output in the default codepage? Total garbage!

Z:andrewprojectssx1259084>chcp
Active code page: 850

Z:andrewprojectssx1259084>java Foo
== UTF-8
= no bom
ASCII     abcde xyz
German    ├ñ├Â├╝ ├ä├û├£ ├ƒ
Polish    ąęźżńł
Russian   ð░ð▒ð▓ð│ð┤ðÁð ÐìÐÄÐÅ
CJK       õ¢áÕÑ¢
= bom
´╗┐ASCII     abcde xyz
German    ├ñ├Â├╝ ├ä├û├£ ├ƒ
Polish    ąęźżńł
Russian   ð░ð▒ð▓ð│ð┤ðÁð ÐìÐÄÐÅ
CJK       õ¢áÕÑ¢
== UTF-16LE
= no bom
A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h         ♣☺↓☺z☺|☺D☺B☺
 R u s s i a n       0♦1♦2♦3♦4♦5♦6♦  M♦N♦O♦
 C J K               `O}Y
 = bom
 ■A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h         ♣☺↓☺z☺|☺D☺B☺
 R u s s i a n       0♦1♦2♦3♦4♦5♦6♦  M♦N♦O♦
 C J K               `O}Y
 == UTF-16BE
= no bom
 A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h        ☺♣☺↓☺z☺|☺D☺B
 R u s s i a n      ♦0♦1♦2♦3♦4♦5♦6  ♦M♦N♦O
 C J K              O`Y}
= bom
■  A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h        ☺♣☺↓☺z☺|☺D☺B
 R u s s i a n      ♦0♦1♦2♦3♦4♦5♦6  ♦M♦N♦O
 C J K              O`Y}
== UTF-32LE
= no bom
A   S   C   I   I                       a   b   c   d   e       x   y   z
   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                   ♣☺  ↓☺  z☺  |☺  D☺  B☺
   R   u   s   s   i   a   n               0♦  1♦  2♦  3♦  4♦  5♦  6♦      M♦  N
♦  O♦
   C   J   K                               `O  }Y
   = bom
 ■  A   S   C   I   I                       a   b   c   d   e       x   y   z

   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                   ♣☺  ↓☺  z☺  |☺  D☺  B☺
   R   u   s   s   i   a   n               0♦  1♦  2♦  3♦  4♦  5♦  6♦      M♦  N
♦  O♦
   C   J   K                               `O  }Y
   == UTF-32BE
= no bom
   A   S   C   I   I                       a   b   c   d   e       x   y   z
   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                  ☺♣  ☺↓  ☺z  ☺|  ☺D  ☺B
   R   u   s   s   i   a   n              ♦0  ♦1  ♦2  ♦3  ♦4  ♦5  ♦6      ♦M  ♦N
  ♦O
   C   J   K                              O`  Y}
= bom
  ■    A   S   C   I   I                       a   b   c   d   e       x   y   z

   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                  ☺♣  ☺↓  ☺z  ☺|  ☺D  ☺B
   R   u   s   s   i   a   n              ♦0  ♦1  ♦2  ♦3  ♦4  ♦5  ♦6      ♦M  ♦N
  ♦O
   C   J   K                              O`  Y}

However, what if we type the files that got saved? They contain the exact
same bytes that were printed to the console.

Z:andrewprojectssx1259084>type *.txt

uc-test-UTF-16BE-bom.txt


■  A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h        ☺♣☺↓☺z☺|☺D☺B
 R u s s i a n      ♦0♦1♦2♦3♦4♦5♦6  ♦M♦N♦O
 C J K              O`Y}

uc-test-UTF-16BE-nobom.txt


 A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h        ☺♣☺↓☺z☺|☺D☺B
 R u s s i a n      ♦0♦1♦2♦3♦4♦5♦6  ♦M♦N♦O
 C J K              O`Y}

uc-test-UTF-16LE-bom.txt


ASCII     abcde xyz
German    äöü ÄÖÜ ß
Polish    ąęźżńł
Russian   абвгдеж эюя
CJK       你好

uc-test-UTF-16LE-nobom.txt


A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h         ♣☺↓☺z☺|☺D☺B☺
 R u s s i a n       0♦1♦2♦3♦4♦5♦6♦  M♦N♦O♦
 C J K               `O}Y

uc-test-UTF-32BE-bom.txt


  ■    A   S   C   I   I                       a   b   c   d   e       x   y   z

   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                  ☺♣  ☺↓  ☺z  ☺|  ☺D  ☺B
   R   u   s   s   i   a   n              ♦0  ♦1  ♦2  ♦3  ♦4  ♦5  ♦6      ♦M  ♦N
  ♦O
   C   J   K                              O`  Y}

uc-test-UTF-32BE-nobom.txt


   A   S   C   I   I                       a   b   c   d   e       x   y   z
   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                  ☺♣  ☺↓  ☺z  ☺|  ☺D  ☺B
   R   u   s   s   i   a   n              ♦0  ♦1  ♦2  ♦3  ♦4  ♦5  ♦6      ♦M  ♦N
  ♦O
   C   J   K                              O`  Y}

uc-test-UTF-32LE-bom.txt


 A S C I I           a b c d e   x y z
 G e r m a n         ä ö ü   Ä Ö Ü   ß
 P o l i s h         ą ę ź ż ń ł
 R u s s i a n       а б в г д е ж   э ю я
 C J K               你 好

uc-test-UTF-32LE-nobom.txt


A   S   C   I   I                       a   b   c   d   e       x   y   z
   G   e   r   m   a   n                   õ   ÷   ³       ─   Í   ▄       ▀
   P   o   l   i   s   h                   ♣☺  ↓☺  z☺  |☺  D☺  B☺
   R   u   s   s   i   a   n               0♦  1♦  2♦  3♦  4♦  5♦  6♦      M♦  N
♦  O♦
   C   J   K                               `O  }Y

uc-test-UTF-8-bom.txt


´╗┐ASCII     abcde xyz
German    ├ñ├Â├╝ ├ä├û├£ ├ƒ
Polish    ąęźżńł
Russian   ð░ð▒ð▓ð│ð┤ðÁð ÐìÐÄÐÅ
CJK       õ¢áÕÑ¢

uc-test-UTF-8-nobom.txt


ASCII     abcde xyz
German    ├ñ├Â├╝ ├ä├û├£ ├ƒ
Polish    ąęźżńł
Russian   ð░ð▒ð▓ð│ð┤ðÁð ÐìÐÄÐÅ
CJK       õ¢áÕÑ¢

The only thing that works is UTF-16LE file, with a BOM, printed to the
console via type.

If we use anything other than type to print the file, we get garbage:

Z:andrewprojectssx1259084>copy uc-test-UTF-16LE-bom.txt CON
 ■A S C I I           a b c d e   x y z
 G e r m a n         õ ÷ ³   ─ Í ▄   ▀
 P o l i s h         ♣☺↓☺z☺|☺D☺B☺
 R u s s i a n       0♦1♦2♦3♦4♦5♦6♦  M♦N♦O♦
 C J K               `O}Y
         1 file(s) copied.

From the fact that copy CON does not display Unicode correctly, we can
conclude that the type command has logic to detect a UTF-16LE BOM at the
start of the file, and use special Windows APIs to print it.

We can see this by opening cmd.exe in a debugger when it goes to type
out a file:

enter image description here

After type opens a file, it checks for a BOM of 0xFEFF—i.e., the bytes
0xFF 0xFE in little-endian—and if there is such a BOM, type sets an
internal fOutputUnicode flag. This flag is checked later to decide
whether to call WriteConsoleW.

But that’s the only way to get type to output Unicode, and only for files
that have BOMs and are in UTF-16LE. For all other files, and for programs
that don’t have special code to handle console output, your files will be
interpreted according to the current codepage, and will likely show up as
gibberish.

You can emulate how type outputs Unicode to the console in your own programs like so:

#include <stdio.h>
#define UNICODE
#include <windows.h>

static LPCSTR lpcsTest =
    "ASCII     abcde xyzn"
    "German    äöü ÄÖÜ ßn"
    "Polish    ąęźżńłn"
    "Russian   абвгдеж эюяn"
    "CJK       你好n";

int main() {
    int n;
    wchar_t buf[1024];

    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    n = MultiByteToWideChar(CP_UTF8, 0,
            lpcsTest, strlen(lpcsTest),
            buf, sizeof(buf));

    WriteConsole(hConsole, buf, n, &n, NULL);

    return 0;
}

This program works for printing Unicode on the Windows console using the
default codepage.


For the sample Java program, we can get a little bit of correct output by
setting the codepage manually, though the output gets messed up in weird ways:

Z:andrewprojectssx1259084>chcp 65001
Active code page: 65001

Z:andrewprojectssx1259084>java Foo
== UTF-8
= no bom
ASCII     abcde xyz
German    äöü ÄÖÜ ß
Polish    ąęźżńł
Russian   абвгдеж эюя
CJK       你好
ж эюя
CJK       你好
 你好
好
�
= bom
ASCII     abcde xyz
German    äöü ÄÖÜ ß
Polish    ąęźżńł
Russian   абвгдеж эюя
CJK       你好
еж эюя
CJK       你好
  你好
好
�
== UTF-16LE
= no bom
A S C I I           a b c d e   x y z
…

However, a C program that sets a Unicode UTF-8 codepage:

#include <stdio.h>
#include <windows.h>

int main() {
    int c, n;
    UINT oldCodePage;
    char buf[1024];

    oldCodePage = GetConsoleOutputCP();
    if (!SetConsoleOutputCP(65001)) {
        printf("errorn");
    }

    freopen("uc-test-UTF-8-nobom.txt", "rb", stdin);
    n = fread(buf, sizeof(buf[0]), sizeof(buf), stdin);
    fwrite(buf, sizeof(buf[0]), n, stdout);

    SetConsoleOutputCP(oldCodePage);

    return 0;
}

does have correct output:

Z:andrewprojectssx1259084>.test
ASCII     abcde xyz
German    äöü ÄÖÜ ß
Polish    ąęźżńł
Russian   абвгдеж эюя
CJK       你好

The moral of the story?

  • type can print UTF-16LE files with a BOM regardless of your current codepage
  • Win32 programs can be programmed to output Unicode to the console, using
    WriteConsoleW.
  • Other programs which set the codepage and adjust their output encoding accordingly can print Unicode on the console regardless of what the codepage was when the program started
  • For everything else you will have to mess around with chcp, and will probably still get weird output.

Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp, после ввода данной команды необходимо нажать Enter.
Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp <код_новой_кодировки>, где <код_новой_кодировки> – это сам код кодировки, на которую мы хотим переключиться. Возможные значения:

  • 1251 – Windows-кодировка (Кириллица);
  • 866 – DOS-кодировка;
  • 65001 – Кодировка UTF-8;

Т.е. для смены кодировки на DOS, команда примет следующий вид:

chcp 866

Для смены кодировки на UTF-8, команда примет следующий вид:

chcp 65001

Для смены кодировки на Windows-1251, команда примет следующий вид:

chcp 1251

Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.

Кодировки в windows

В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет!!! Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».

Тем, кто ещё не понимает, о чём проблема, то вот Вам:

image

А тут было написано:

echo Я абракадабра, написанная автором.

Но никто ничего не понял.

В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.

1. Настройка консоли в батнике

Сразу для тех, кто пишет chcp 1251 лучше написать это:

assoc .bat = .mp4

Первый способ устранения проблемы, это

Notepad

. Для этого Вам нужно открыть Ваш батник таким способом:

image

Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:

image

Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.

2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.

Первый способ непосредственно Notepad , но а если нужно сначала одну кодировку, а потом другую?

Сразу для использующих chcp 1251 пишите это:

del C:Program Data
echo Mne pofig
pause

Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C ).

#include <iostream>
#include <windows.h>
int main() {
SetConsoleCP(номер_кодировки);
SetConsoleOutputCP(номер_кодировки);
}

Если же не сработает:

#include <math.h> //Не забываем про библиотеку Math.
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus
      }
int main {
    cout << "Тут пишите, что угодно!" << endl;
    system("pause")
    return 0
}

3. Изменение chcp 1251

Если же у Вас батник, то напишите в начало:

chcp 1251 >nul
for /f "delims=" %%A in ("Мой текст") do >nul chcp 866& echo.%%A

Теперь у Нас будет нормальный вывод в консоль. На других языках (С ):

SetConsoleOutputCP(1251) 
//А тут добавляете тот цикл, который был в батнике

4. Сделать жизнь мёдом

При использовании данного способа Вы не сможете:

Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.

Содержание

  1. Кракозябры в командной строке cmd. Проблемы с кодировкой cmd.exe
  2. Спасшая статья:
  3. chcp 1251 что это значит в батнике
  4. Спасшая статья:
  5. Решения проблемы с кодировкой в CMD. 1 Способ.
  6. Решения проблемы с кодировкой в CMD. 2 Способ.
  7. Не корректно отображается Русский текст в CMD? Решение есть!
  8. Решения проблемы с кодировкой в CMD. 1 Способ.
  9. Решения проблемы с кодировкой в CMD. 2 Способ.
  10. cmd вывод в файл кодировка
  11. Кракозябры при выводе результатов в файл из cmd
  12. Спасшая статья:
  13. Решения проблемы с кодировкой в CMD. 1 Способ.
  14. Решения проблемы с кодировкой в CMD. 2 Способ.
  15. Кодировка cmd windows 10
  16. Синтаксис
  17. Параметры
  18. Комментарии
  19. Примеры

Кракозябры в командной строке cmd. Проблемы с кодировкой cmd.exe

Выполняю cmd и в нем set, хочу узнать USERNAME. Но оно показывается в непонятной кодировке.

Оказывается надо в свойствах самого cmd выбрать шрифт Lucida Console. Только так можно получить нормальный текст на русском языке.

Спасшая статья:

Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)

42

Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).

41

Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Lucida Console и жмем ОК.

43

Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.

44

Для изменения кодировки так же применим chcp в следующем формате:

Где – это цифровой параметр нужного шрифта, например,

1251 – Windows (кириллица);

Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.

almix 1350459937

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Источник

chcp 1251 что это значит в батнике

Команда 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)

42

Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).

41

Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Luc >ОК.

43

Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.

44

Для изменения кодировки так же применим chcp в следующем формате:

Где – это цифровой параметр нужного шрифта, например,

1251 – Windows (кириллица);

Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.

almix 1350459937

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

rating onrating onrating on rating halfrating off

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него следующие строки!

Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»

Теперь запускаем файл 1.bat и результат будет такого вида.

1

Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.

Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!

Решения проблемы с кодировкой в CMD. 1 Способ.

Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).

Скачиваем и устанавливаем на свой компьютер «Notepad++».

После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.

Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»

21

и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.

3

Как видим, текст на Русском в CMD отобразился, как положено.

Решения проблемы с кодировкой в CMD. 2 Способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача : Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:

4

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

Теперь содержимое кода будет такое.

После выполнения «Батника» результат будет такой:

5

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

Источник

Не корректно отображается Русский текст в CMD? Решение есть!

rating onrating onrating onrating on rating off

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него следующие строки!

Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»

Теперь запускаем файл 1.bat и результат будет такого вида.

1

Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.

Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!

Решения проблемы с кодировкой в CMD. 1 Способ.

Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).

Скачиваем и устанавливаем на свой компьютер «Notepad++».

После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.

Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»

21

и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.

3

Как видим, текст на Русском в CMD отобразился, как положено.

Решения проблемы с кодировкой в CMD. 2 Способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача : Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:

4

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

Теперь содержимое кода будет такое.

После выполнения «Батника» результат будет такой:

5

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

[HKEY_CLASSES_ROOT.batShellNew]
«FileName»=»BATНастроенная кодировка.bat»
——
Выполняем.
——
Топаем в %SystemRoot%SHELLNEW
Создаём там файл «BATНастроенная кодировка.bat»
Открываем в Notepad++
Вводим любой текст. (нужно!) Сохраняемся.
Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся.
———-
Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows».
Переименовываем. Открываем в Notepad++. Пишем батник.
В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».

Источник

cmd вывод в файл кодировка

Про АйТи и около айтишные темы

Кракозябры при выводе результатов в файл из cmd

Командная строка (cmd.exe) – это один из основных инструментов системного администратора. Но у него есть недостаток. При выводе результата команды в текстовый файл в локализованной Windows, прочитать его содержимое не получится. Для примера вывел в файл справку программы ping:

chcp thumb

Перечитал кучу информации по этой теме, но нормального решения не нашел.

Остановился на варианте – переводить кодировку консоли в 855 (По умолчанию — 866), в которой все будет выводиться на английском языке. Перед выводом в файл ввожу в командную строку:

После этого все описания и комментарии к командам будут в оригинале, т.е. на английском. Чтобы вернуть кодировку по умолчанию, нужно указать кодировку 866, либо 1251 (Unicode – 65001).

Теперь при написании командных файлов (.bat), пишу в самом начале — chcp 855. Пример:

P.S. Вариант с переходом на шрифт Lucida Console и кодовую страницу 1251 мне не понравился. Он то срабатывает, то нет. Закономерности так и не заметил.

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!

Хотите поблагодарить автора за эту заметку? Вы можете это сделать!

Выполняю cmd и в нем set, хочу узнать USERNAME. Но оно показывается в непонятной кодировке.

chcp 866; chcp 1251; chcp 65001 — не помогали.

Оказывается надо в свойствах самого cmd выбрать шрифт Lucida Console. Только так можно получить нормальный текст на русском языке.

Спасшая статья:

Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).

Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)

42

Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).

41

Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Luc >ОК.

43

Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.

44

Для изменения кодировки так же применим chcp в следующем формате:

Где – это цифровой параметр нужного шрифта, например,

1251 – Windows (кириллица);

Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.

almix 1350459937

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

rating onrating onrating on rating halfrating off

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него следующие строки!

Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»

Теперь запускаем файл 1.bat и результат будет такого вида.

1

Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.

Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!

Решения проблемы с кодировкой в CMD. 1 Способ.

Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).

Скачиваем и устанавливаем на свой компьютер «Notepad++».

После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.

Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»

21

и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.

3

Как видим, текст на Русском в CMD отобразился, как положено.

Решения проблемы с кодировкой в CMD. 2 Способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача : Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:

4

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

Теперь содержимое кода будет такое.

После выполнения «Батника» результат будет такой:

5

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

Источник

Кодировка cmd windows 10

Изменяет активную кодовую страницу консоли. Если используется без параметров, параметр chcp отображает номер активной кодовой страницы консоли.

Синтаксис

Параметры

Параметр Описание
Задает кодовую страницу.
/? Отображение справки в командной строке.

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

Кодовая страница Страна, регион или язык
437 США
850 Многоязычная (латиница I)
852 Славянские (латиница II)
855 Кириллица (Русский)
857 Турецкий
860 Португальский
861 Исландский
863 Canadian-French
865 Скандинавская
866 Русский
869 Современный греческий
936 Китайский

Комментарии

в окне командной строки, где используются растровые шрифты, правильно отображается кодовая страница изготовителя оборудования, установленная с Windows. Другие кодовые страницы отображаются правильно в полноэкранном режиме или в окнах командной строки, в которых используются шрифты TrueType.

Вам не нужно подготавливать кодовые страницы (как в MS-DOS).

Программы, запускаемые после назначения новой кодовой страницы, используют новую кодовую страницу. Однако программы (кроме Cmd.exe), которые вы начали перед назначением новой кодовой страницы, продолжат использовать исходную кодовую страницу.

Примеры

Чтобы просмотреть текущую настройку кодовой страницы, введите:

Появится сообщение следующего вида: Active code page: 437

Чтобы изменить активную кодовую страницу на 850 (многоязычный), введите:

Если указанная кодовая страница является недопустимой, появляется следующее сообщение об ошибке: Invalid code page

Источник

Кракозябры в командной строке Windows Печать

Добавил(а) microsin

  

Иногда по неизвестным причинам некоторые команды русскоязычной версии Windows выводят русский текст в нечитаемой кодировке, кракозябрами.

Например, команда help выводит нормальный текст:

cmd-normal-encoding-866

Но при этом подсказка telnet выводит в ответ кракозябры.

cmd-wrong-encoding-1251

Так может происходить, к примеру, если текущая кодировка консоли 866, а утилита telnet.exe почему-то выводит текст в кодировке 1251. Вывести текст в нужной кодировке поможет команда chcp, которая устанавливает нужную кодировку.

Вот так можно посмотреть текущую кодировку консоли:

c:Documents and Settingsuser>chcp
Текущая кодовая страница: 866
  
c:Documents and Settingsuser>

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

c:Documents and Settingsuser>chcp 1251
Текущая кодовая страница: 1251
  
c:Documents and Settingsuser>

cmd-normal-encoding-1251

К сожалению, заранее угадать, в какой кодировке выводится текст, невозможно, поэтому проще попробовать установить командой chcp разные кодировки, чтобы добиться правильного отображения русского текста. Обычно используются кодировки 866 (кодировка русского текста DOS), 1251 (кодировка русского текста Windows), 65001 (UTF-8).

[Шрифт cmd.exe]

Иногда кракозябры можно убрать, если выбрать в свойствах окна cmd.exe шрифт Lucida Console (по умолчанию там стоит «Точечные шрифты»).

[Ссылки]

1. Универсальный декодер — конвертер кириллицы.

Содержание

  1. Кракозябры в командной строке cmd. Проблемы с кодировкой cmd.exe
  2. Спасшая статья:
  3. Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
  4. Исправляем проблему с кодировкой с помощью смены шрифта
  5. Исправляем проблему с кодировкой с помощью смены кодировки
  6. Кодировки в Windows
  7. CHCP – просмотр или изменение кодовой страницы.
  8. Исправляем проблему с кодировкой с помощью смены кодировки
  9. Исправляем проблему с кодировкой с помощью смены шрифта
  10. Как сменить кодировку в консоли windows?
  11. Кодировки в windows / песочница / хабр
  12. Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
  13. Не корректно отображается русский текст в cmd? решение есть!
  14. Решения проблемы с кодировкой в cmd. 2 способ.
  15. Спасшая статья:

Кракозябры в командной строке cmd. Проблемы с кодировкой cmd.exe

Выполняю cmd и в нем set, хочу узнать USERNAME. Но оно показывается в непонятной кодировке.

chcp 866; chcp 1251; chcp 65001 — не помогали.

Оказывается надо в свойствах самого cmd выбрать шрифт Lucida Console. Только так можно получить нормальный текст на русском языке.

Спасшая статья:

Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).

Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)

Если Вы занялись проблемой кодировки шрифтов в cmd.exe , то как запускать командную строку наверняка уже знаете

Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).

Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Lucida Console и жмем ОК.

Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.

Для изменения кодировки так же применим chcp в следующем формате:

Где – это цифровой параметр нужного шрифта, например,

1251 – Windows (кириллица);

Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:

Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.

Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp , после ввода данной команды необходимо нажать Enter .

Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp , где — это сам код кодировки, на которую мы хотим переключиться. Возможные значения:

  • 1251 — Windows-кодировка (Кириллица);
  • 866 — DOS-кодировка;
  • 65001 — Кодировка UTF-8;

Т.е. для смены кодировки на DOS, команда примет следующий вид:

Для смены кодировки на UTF-8, команда примет следующий вид:

Для смены кодировки на Windows-1251, команда примет следующий вид:

Кодировки в Windows

В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет. Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».

Тем, кто ещё не понимает, о чём проблема, то вот Вам:

А тут было написано:

Но никто ничего не понял.

В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.

1. Настройка консоли в батнике

Сразу для тех, кто пишет chcp 1251 лучше написать это:

Первый способ устранения проблемы, это Notepad++. Для этого Вам нужно открыть Ваш батник таким способом:

Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:

Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.

2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.

Первый способ непосредственно Notepad++, но а если нужно сначала одну кодировку, а потом другую?

Сразу для использующих chcp 1251 пишите это:

Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C++).

Если же не сработает:

3. Изменение chcp 1251
Если же у Вас батник, то напишите в начало:

Теперь у Нас будет нормальный вывод в консоль. На других языках (С++):

4. Сделать жизнь мёдом
При использовании данного способа Вы не сможете:

  • Разрабатывать приложения на Windows ниже 10
  • Спасти мир от данной проблемы
  • Думать о других людях
  • Разрабатывать десктопные приложения, так как Вам жизнь покажется мёдом
  • Сменить Windows на версию ниже 10
  • Ну и понимать людей, у которых Windows ниже 10

Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

CHCP – просмотр или изменение кодовой страницы.

Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp , после ввода данной команды необходимо нажать Enter .

Как видно на скриншоте, текущая используемая кодировка Windows-1251

Для изменения кодировки нам необходимо воспользоваться командой chcp , где – это сам код кодировки, на которую мы хотим переключиться. Возможные значения:

  • 1251 – Windows-кодировка (Кириллица);
  • 866 – DOS-кодировка;
  • 65001 – Кодировка UTF-8;

Т.е. для смены кодировки на DOS, команда примет следующий вид:

Для смены кодировки на UTF-8, команда примет следующий вид:

Для смены кодировки на Windows-1251, команда примет следующий вид:

Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК .

После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.

Как сменить кодировку в консоли windows?

Файл должен выводиться в utf-8, а в консоли — 866, в итоге в браузере отображаются ромбы.

После команды chcp 65001 ничего не поменялось.

Поскольку в консоли используется кодовая страница 866, то если в реестре поменять значение REG_SZ-параметра «866» под ключом [HKLMSYSTEMCurrentControlSetControlNlsCodePage] с «C_866.nls» (по умолчанию) на иное, то и кодировка в cmd также должна измениться.

Но у меня в CodePage таких файлов нет. Есть типы REG.SZ по умолчанию и 4 файла с номерами 932 936 949 950

Вариант постоянно изменять в консоли chcp не подходит, но и не работает. Lucida console подключен в консоли. Cygwin64 Terminal и Gitbash не запускает python server

Какие-то ещё есть варианты?

При запуске кода (python generate_all.py из командной строки или Ctrl B в саблайме) в этой же папке генерируется файл index.html, и, если поднять сервер в этой же директории (python -m http.server) из консоли win, то в браузере ромбы.

Кодировки в windows / песочница / хабр

В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет. Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».

Тем, кто ещё не понимает, о чём проблема, то вот Вам:

А тут было написано:

Но никто ничего не понял.

В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.

1. Настройка консоли в батнике

Сразу для тех, кто пишет chcp 1251 лучше написать это:

Первый способ устранения проблемы, это

. Для этого Вам нужно открыть Ваш батник таким способом:

Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:

Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.

2. Написание консольных программ
Нередко люди пишут консольные программы(потому что на некоторых десктопные писать невозможно), а кодировка частая проблема.

Первый способ непосредственно Notepad , но а если нужно сначала одну кодировку, а потом другую?

Сразу для использующих chcp 1251 пишите это:

Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C ).

Если же не сработает:

3. Изменение chcp 1251

Если же у Вас батник, то напишите в начало:

Теперь у Нас будет нормальный вывод в консоль. На других языках (С ):

4. Сделать жизнь мёдом

При использовании данного способа Вы не сможете:

  • Разрабатывать приложения на Windows ниже 10
  • Спасти мир от данной проблемы
  • Думать о других людях
  • Разрабатывать десктопные приложения, так как Вам жизнь покажется мёдом
  • Сменить Windows на версию ниже 10
  • Ну и понимать людей, у которых Windows ниже 10

Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.

Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:

Не корректно отображается русский текст в cmd? решение есть!

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него следующие строки!

Решения проблемы с кодировкой в cmd. 2 способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача : Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

Теперь содержимое кода будет такое.

После выполнения «Батника» результат будет такой:

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

Автор очень хорошо описал принцип. ! Но это неудобно. Нужно бы добавить. Если автор добавит это в статью то это будет Good. Создаём файл .reg следующего содержания: —— Windows Registry Editor Version 5.00

Выполняем.

Топаем в %SystemRoot%SHELLNEW

Создаём там файл «BATНастроенная кодировка.bat»

Открываем в Notepad

Вводим любой текст. (нужно!) Сохраняемся.

Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся.

Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows».

Переименовываем. Открываем в Notepad . Пишем батник.

В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».

Спасшая статья:

Приложение cmd.exe – это командная строка или программная оболочка с текстовым интерфейсом (во загнул ).

Запустить командную строку можно следующим способом: Пуск → Выполнить → вводим в поле команду – cmd и жмем ОК. В итоге откроется рабочее окно программы – c:WINDOWSsystem32cmd.exe. ( рис.1)

Если Вы занялись проблемой кодировки шрифтов в cmd.exe , то как запускать командную строку наверняка уже знаете

Перейдем собственно к проблеме: иногда вместо русских букв при выполнении команд выходит набор непонятных символов ( рис.2).

Первым делом нужно зайти в свойства окна – правой кнопкой щелкнуть по верхней части окна → Свойства → выйдет окно рис.3, здесь в поле Шрифтвыбираем Lucida Console и жмем ОК.

Теперь Вы получили нормальный текст на русском языке. Так же можно поменять текущую кодировку шрифта, для этого используется команда chcp. Набираем эту команду и жмем Enter, в результате получим текущую кодировку для командной строки – рис.4.

Для изменения кодировки так же применим chcp в следующем формате:

Где – это цифровой параметр нужного шрифта, например,

1251 – Windows (кириллица);

Выбирайте на любой вкус. Т.о. что бы изменить кодировку на UTF-8 нужно выполнить команду chcp 65001.

almixРазработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

ZoOoO

199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

1

19.02.2017, 18:35. Показов 35055. Ответов 18

Метки нет (Все метки)


Не понимаю!!!!!!!Бат файл создаю через блокнот.
Почему когда я в окне командной строке набираю susteminfo,то у меня вся информация выводится на русском.А если я прописываю эту команду в блокноте и пытаюсь вывести ее в файл,то получаются крокозябры.Пробывал так :

Windows Batch file
1
for /f "delims=" %%A in ('systeminfo') do >nul chcp 1251& echo %%A>>2.txt

Тоже не выходит.Читал тему про русский язык в командных файлах.Оттуда собственно и пример.Но не работает.

Объясните пожалуйста.

Пытался через notepad++.Создавал файл в 866 кодировке.Такая же ерунда.



0



YuS_2

Любознательный

3222 / 862 / 231

Регистрация: 10.03.2016

Сообщений: 2,038

19.02.2017, 18:41

2

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

пытаюсь вывести ее в файл,то получаются крокозябры.

Как создать Batch-файл [Руководство]

Windows Batch file
1
systeminfo >text.txt

Сохраненный файл тоже будет в кодировке OEM



0



ZoOoO

199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 18:46

 [ТС]

3

Цитата
Сообщение от YuS_2
Посмотреть сообщение

Windows Batch file
1
systeminfo >text.txt

1.Начнем с того,что там будет последняя строка команды.
2.Я не могу найти ответ на мой вопрос в Вашей сылке.
Я создавал через нотепад++ батник с кодировкой 866.Все равно в файл сохраняются крокозябры=(



0



716 / 317 / 131

Регистрация: 17.03.2014

Сообщений: 797

19.02.2017, 18:48

4

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

Начнем с того,что там будет последняя строчка команды.

ложь



0



199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 18:52

 [ТС]

5

Цитата
Сообщение от b0gus
Посмотреть сообщение

ложь

Виноват.Но крокозябры все равно не побеждены=(



0



Garry Galler

Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 18:55

6

Windows Batch file
1
2
chcp 1251
systeminfo>system.txt



0



b0gus

716 / 317 / 131

Регистрация: 17.03.2014

Сообщений: 797

19.02.2017, 18:56

7

попробуйте так:

Windows Batch file
1
2
@echo off
>nul chcp 866 & >systeminfo.txt (for /f "delims=" %%v in ('systeminfo') do echo:%%v)



0



ZoOoO

199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 19:13

 [ТС]

8

Цитата
Сообщение от YuS_2
Посмотреть сообщение

Как создать Batch-файл [Руководство]

ИнтересноПолучилось.

Вариант 3. Через консоль копированием данных с устройства con (клавиатура)
Запуск консоли (все аналогично способу 2 (см. выше).
Пишем команду:
Bash
copy con myproga.cmd
Пишем содержимое нашего бат-файла. Ввод каждой строки подтверждаем клавишей {ENTER}.
Bash
@echo off
echo This batch file
pause
Нажимаем Ctrl + Z, затем клавишу Enter.
Запускаем на исполнение созданный бат-файл:
Bash
myproga
Вариант 3.1. Через консоль, используя команду more (спасибо MihaniX)
Пишем команду:
Bash
more > myproga.cmd
Пишем содержимое нашего бат-файла. Ввод каждой строки подтверждаем клавишей {ENTER}.
Bash
@echo off
echo This batch file
pause
Нажимаем Ctrl + C (либо Ctrl + Z и клавишу Enter).
Запускаем на исполнение созданный бат-файл:
Bash
myproga

Добавлено через 4 минуты
Garry Galler
Хм.Я вроде и так пробывал.Похоже я не на тот батник жал,после редактирования…

Добавлено через 7 минут

Windows Batch file
1
2
3
4
@echo off
systeminfo|findstr /c:"Версия ОС"
systeminfo|findstr /c:"Версия BIOS"
pause

А это как победить в блокноте?

Добавлено через 5 минут
А почему в обще это так получается.
Все что я понял это то что окно в смд работает в 866 кодировке.А дальше я не понимаю.Блокнот сохраняет в кодировке 1251.
Что означает:
chcp 1251
chcp 866
Что происходит после этих команд.Только не надо говорить.что меняется кодировка.Я это и не понимаю.



0



Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 20:04

9

Вариант с переключением chcp 1251 на XP, я так понимаю, не сработает. Поэтому на форуме есть более сложные способы — с перекодировкой непосредственно текстового файла.

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

А это как победить в блокноте?

А что не так? Да, 866 он не умеет читать — поэтому блокнотом и не пользуются, заменяя другими текст. редакторами.

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

Что означает:
chcp 1251
chcp 866
Что происходит после этих команд.Только не надо говорить.что меняется кодировка.Я это и не понимаю.

Если кратко и про простому, то консоль — обычное приложение и команда chcp просто указывает какую кодовую страницуcharset (у каждой есть свой уникальной номер, текстовое имя и т.д.) использовать, то есть каким образом приложение должно декодировать набор байтов (то, что понимает машина), чтобы вывести набор соответствующих символов (то, что понимает человек). Текст на компьютере — это байтовый код. Кодировка (кодовая страница, charset) — ключ к нему. Укажем неверную кодировку — получим неверную расшифровку, потому что у каждого байта (набора байтов), представляющих символ, может быть много символьных вариаций в зависимости от принадлежности к конкретному набору символовcharacter set (именуемому часто просто кодировкой) юникода.
Можешь поискать в инете книгу Джоэла Спольски «О программировании» — там очень много полезных вещей описано, в том числе и о кодировках.



0



ZoOoO

199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 21:12

 [ТС]

10

Цитата
Сообщение от Garry Galler
Посмотреть сообщение

у каждого байта (набора байтов)

Я как понимаю набора из 8 бит.1 байт это 1 символ.
то есть блокнот у нас всегда сохраняет в кодировке 1251.Окно смд у нас работает в 866 кодировке.Набор байтов заносится в блокнот.Блокнот этот набор файлов расшифровывает кодировкой 1251 и отображает в кодировке 1251,а из-за того что русские буквы в 866 кодировке имеют другое расположение битов в отличие от 1251,то и блокнот нам выводит крокозябры.
Значит надо сделать так,что бы окно было в нужной кодировке.Для этого и существует команда chcp?Мы меняем кодировку на 1251.И Окно уже расшифровывает выводимые символы в кодировке 1251.То есть может расшифровать те символы которые были сохранены в блокноте.А почему тогда не работает вот это?

Windows Batch file
1
2
3
4
@echo off
chcp 1251
echo привет
pause

Но работает ,если в окне переключить кодировку,а потом запустить батник:

Windows Batch file
1
2
3
@echo off
echo привет
pause

Добавлено через 11 минут

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

Вариант 3. Через консоль копированием данных с устройства con (клавиатура)

Тут понятно.Это типа нотепада++ который сохраняет бат файл в 866 кодировке.



0



Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 21:40

11

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

у каждого байта (набора байтов)
Я как понимаю набора из 8 бит.1 байт это 1 символ.

Имелось ввиду то, что кодировки могут быть как однобайтовые, так и многобайтовые (на один символ — 246 байт).

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

А почему тогда не работает вот это?

Не знаю. У меня работает, но «когда двое делают одно и тоже, это не одно и тоже» :-)
Я же не могу видеть какую именно последовательность действий ты производишь — у чего именно ты меняешь кодировку.
Но должно быть так:
1) если файл сохранен в OEM 866 и мы

не

переключаем кодировку консоли на 1251 (ни в файле, ни в окне), вывод кириллического текста из батника будет правильный.
2) если файл сохранен в OEM 866 и мы переключаем кодировку на 1251 — вывод кириллического текста из батника будет неправильный.
Кодировка консоли должна в данном случае соответствовать кодировке файла — иначе кракозябры, как результат неверного декодирования.



0



199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 21:44

 [ТС]

12

Я запускаю на сам батник.Вылезает окно.Вместо привет-крокозябры.
Хотя команда chcp 1251 стоит.
А если запустить окно смд.Поменять в нем кодировку и запустить батник из окна.То все выводится нормально.Вот про что я)



0



Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 22:24

13

ZoOoO,
Я тебе написал как оно должно работать. Кодировку своего файла (батника) ты не озвучил, а именно это имеет значение в первую очередь. И неизвестно как (чем) ты сохраняешь файл, что опять же не дает оснований даже предположить в каком именно виде у тебя находится слово «привет» в файле. Ты в чем-то допускаешь ошибку, поэтому получаешь разные результаты.



0



ZoOoO

199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 22:26

 [ТС]

14

Блокнот обычный.Нотепад++не рассматриваю,потому что там все понятно.С блокнотом хочется научится работать.
Я,беру блокнот.Обычный.
Пишу там код:

Windows Batch file
1
2
3
4
@echo off
chcp 1251         <<<-----------------поменял кодировку
echo привет
pause

Сохраняю.
Кликаю по сохраненному бат файлу.Запускается мой бат файл и вместо нормальных букв я вижу крокозябры.Хотя кодировку я поменял.

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



0



Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 22:51

15

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

Потом.Если открыть окно смд через ярлык смд

С этого и надо было начинать.
Скорей всего так: у тебя в ярлыке на cmd запускается экземпляр консоли у которой в свойствах стоит шрифт Lucida Console, который кириллицу поддерживает. А при клике на батник запускается экземпляр консоли у которой стоит в свойствах точечный шрифт, который кириллицу не поддерживает.
Проверяй.

Потому что у меня (как и должно ) выводится нормально в обоих случаях.

Кодировка в CMD



0



199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 23:00

 [ТС]

16

Ну да.Я менял шрифт окна смд который запускаешь через ярлык.
Ну да.Шрифт меняешь и крокозябры пропадают.ПРоблема в том,что допустим если у человека шрифт стоит точечный и кодировка не сменится получается.



0



Эксперт Python

5403 / 3827 / 1214

Регистрация: 28.10.2013

Сообщений: 9,554

Записей в блоге: 1

19.02.2017, 23:24

17

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

ПРоблема в том,что допустим если у человека шрифт стоит точечный и кодировка не сменится получается.

Кодировка и шрифт — не одно и тоже. Кодировка сменится — просто консоль все равно не сможет вывести кириллицу в

этой кодировке

правильно из-за того что виндовые «растерные (точечные) шрифты работают с русским корректно ТОЛЬКО в 866-й кодовой странице». Поэтому кодировку 1251 в bat-файлах стараются и не использовать, кодируя все в 866.



0



199 / 209 / 69

Регистрация: 09.02.2016

Сообщений: 1,040

19.02.2017, 23:47

 [ТС]

18

А шрифты менять с помощью команд можно?



0



5614 / 1690 / 292

Регистрация: 10.12.2013

Сообщений: 5,953

20.02.2017, 04:02

19

Цитата
Сообщение от ZoOoO
Посмотреть сообщение

А шрифты менять с помощью команд можно?

простой ответ — нет.

я, помню, исследовал этот вопрос;

если развёрнутый ответ, то так:
в принципе командами шрифт меняется,
но без последующей перезагрузки Уиндус эффекта нет.
=====
У меня была задача подсунуть Уиндус консольный monospace шрифт,
который бы показывал в консоли все диапазоны Юникода, как это есть в MacOS.

Но, увы, шрифт в системах одинаковый( одной и той же фирмы / версии / размера ),
только в MacOS всe диапазоны показывает, а в Windows видишь дулю с маком в виде знаков вопросов.

почему — непонятно.

Добавлено через 2 минуты
Надеюсь, в десятке эту херню таки устранят.



0



Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:

Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.

Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp , после ввода данной команды необходимо нажать Enter .

Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp <код_новой_кодировки> , где <код_новой_кодировки> — это сам код кодировки, на которую мы хотим переключиться. Возможные значения:

Как настроить поддержку русского языка в терминале Linux

Добавляем поддержку русского языка в UbuntuDebian системах:

Установимобновим пакет locales:

После чего выполним команду:

Откроется диалоговое окно, в котором необходимо установить нужное значение региональных настроек (локали).

Добавьте в данном меню поддержку русского языка:

В данном случае к существующим мы добавляем ru_RU.UTF-8 .

После выбора локалей для генерации будет предложен выбор локали по умолчанию в системном окружении:

Как я могу изменить язык в CMD?

На вкладке «Клавиатуры и язык» щелкните «Сменить клавиатуру». Щелкните Добавить. Разверните нужный язык.

Как изменить язык командной строки в Windows 10?

Открыть настройки. Перейдите в раздел «Время и язык». Слева нажмите на Регион и язык. Справа выберите язык, на котором вы хотите отображать Windows 10.

Как я могу изменить язык моего ПК на английский?

Изменить языковые настройки

  1. Открыть настройки.
  2. Щелкните Время и язык.
  3. Щелкните «Язык».
  4. В разделе «Предпочтительные языки» нажмите кнопку «Добавить язык». Источник: Windows Central.
  5. Найдите новый язык. …
  6. В результате выберите языковой пакет. …
  7. Щелкните кнопку Далее.
  8. Отметьте опцию Установить языковой пакет.

Какой язык программирования CMD?

CMD технически является языком сценариев оболочки, таким как bash, sh или csh. Это полезно для автоматизации задач, связанных с вызовом существующих программ из командной строки.

Как изменить язык клавиатуры в PowerShell?

Установить раскладку клавиатуры по умолчанию с помощью PowerShell

  1. Откройте PowerShell.
  2. Чтобы получить список доступных языков, введите или скопируйте и вставьте следующую команду: Get-WinUserLanguageList.
  3. См. Значение LanguageTag для каждого из языков.
  4. Выполните следующую команду, чтобы изменить порядок списка языков в Windows 10.

Как открыть экранную клавиатуру в CMD?

Щелкните Начать экранную клавиатуру. Нажмите клавиши Windows + R, чтобы открыть окно «Выполнить», или откройте командную строку. Введите osk и нажмите Enter. Это немедленно откроет экранную клавиатуру.

Как изменить язык отображения?

Измените язык отображения

Выбранный вами язык отображения изменяет язык по умолчанию, используемый такими функциями Windows, как «Настройки» и «Проводник». Нажмите кнопку «Пуск», затем выберите «Настройки»> «Время и язык»> «Язык». Выберите язык в меню языка отображения Windows.

Почему я не могу изменить язык отображения Windows?

Выполните всего три шага; вы можете легко изменить язык отображения в Windows 10. Откройте «Настройки» на своем ПК. Щелкните Время и язык, а затем перейдите в меню «Регион и язык». Нажмите «Добавить язык», чтобы найти нужный язык и загрузить его.

Как я могу изменить язык моего ноутбука?

  1. Щелкните Пуск, а затем щелкните Панель управления.
  2. В разделе «Часы, язык и региональные стандарты» щелкните Сменить клавиатуру или другие способы ввода.
  3. В диалоговом окне «Язык и региональные стандарты» нажмите «Сменить клавиатуру».
  4. В диалоговом окне «Текстовые службы и языки ввода» перейдите на вкладку «Языковая панель».

Могу ли я изменить язык Windows 10?

Выбранный вами язык отображения изменяет язык по умолчанию, используемый такими функциями Windows, как «Настройки» и «Проводник». Выберите Пуск> Параметры> Время и язык> Язык. Выберите язык в меню языка отображения Windows.

Как поменять язык обратно на английский?

Как изменить язык на Android

  1. Откройте приложение «Настройки» на своем устройстве Android.
  2. Коснитесь «Система».
  3. Коснитесь «Языки и ввод».
  4. Коснитесь «Языки».
  5. Нажмите «Добавить язык».
  6. Выберите нужный язык из списка, нажав на него.

Почему я не могу изменить язык в Windows 10?

Путь: клавиша Windows, настройки, время и язык, регион и язык. Если желаемого языка нет в списке, нажмите «Добавить язык», найдите его и загрузите. Тот же путь: клавиша Windows, настройки, время и язык, регион и язык. Щелкните нужный язык, а затем щелкните «Параметры».

Какая польза от CMD?

Что такое командная строка. В операционных системах Windows командная строка — это программа, которая имитирует поле ввода на экране текстового пользовательского интерфейса с графическим пользовательским интерфейсом Windows (GUI). Его можно использовать для выполнения введенных команд и выполнения расширенных административных функций.

Каковы основные команды Windows?

Здесь мы представляем основные команды, которые должен знать каждый пользователь Windows.

Команды командной строки Windows

Обновлено 14.02.2020

абракадабра, кракозябрыДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз я вам подробно рассказывал, как диагностировать вашу систему, когда у вас нет интернета, судя по комментариям данный материал оказался полезным. Не так давно один из моих приятелей задал мне вопрос, почему при сохранении текстового файла с выводом результатов из командной стоки Windows у него вместо русского языка, отображается какая-то кракозябра. Давайте я покажу, как выкручиваться из данной ситуации.

Описание проблемы

Мой приятель делал диагностику репликации Active Directory и так как полученная диагностическая информация была объемной, он логично попытался сохранить ее в текстовый файл. Напоминаю делается, это вот по такой конструкции:

repadmin /replsummary > c:tempreplsummary.log

Тут > c:tempreplsummary.log и есть функция вывода в файл.

При открытии файла он увидел вот такую абракадабры вместо русского текста:

‚аҐ¬п § ЇгбЄ  бў®¤ЄЁ Ї® ९«ЁЄ жЁЁ: 2020-02-14 18:10:03

Ќ з в бЎ®а ¤ ­­ле ¤«п бў®¤ЄЁ Ї® ९«ЁЄ жЁЁ, Ї®¤®¦¤ЁвҐ:
…….

€б室­л© DSA ­ ЁЎ. ¤Ґ«мв  бЎ®Ґў/ўбҐЈ® %% ®иЁЎЄ

Абракадабра в файле выгруженным из командной строки

Согласитесь, что это не очень красиво и читаемо.

Варианты устранения краскозябр в файле после экспорта из cmd

Первый вариант, это использование оболочки PowerShell. PowerShell умеет запускать большую часть утилит, к которым вы привыкли в командной строке, у него для этого есть алиасы в виде командлетов. Самое классное, что в отличии от cmd он сохраняет данные в нормальном виде, даже если они по русски. Для примера я выполню в PowerShell предыдущую команду;

repadmin /replsummary > c:tempreplsummary.log

В результате вы сразу можете оценить его преимущество и еще раз задуматься, чтобы использовать его.

Исправление кривой кодировки через PowerShell

Так же вы можете использовать командлет PowerShell под названием Out-File, он позволяет производить вывод полученных данных в виде файла, единственное не забываем указать нужное место, так же если места нет, вы его можете создать с помощью ключа -Force.

repadmin /replsummary | Out-File c:tempreplsummary.log

Убираем кракозябры в экспортируемом файле из cmd

Если же вы хотите использовать именно командную строку, то вам необходимо перед вашей командой или в скрипте в самом начале выполнить вот эти строки:

@echo off
chcp 855 (По умолчанию в командной строке стоит — 866 или 1251)

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

Настройка правильной кириллицы при экспорте текстового файла через командную строку

Вот пример бат файла, где я использовал кодировку chcp 855.

Применение кодировки 855 в сценариях командной строки

Убираем кракозябры через реестр

В реестре Windows есть ветка «HKEY_CURRENT_USERConsole%SystemRoot%_system32_cmd.exe», где вы можете создать ключ CodePage со значением 855. Напоминаю, что из себя представляют эти трехзначные цифры, обратите внимание, что 855 это именно кириллица (Дополнительно можно почитать https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers).

Идентификаторы кодовой страницы

В командной строке от имени администратора выполните команду по добавлению ключа:

REG ADD HKCUConsole%SystemRoot^%_system32_cmd.exe /v CodePage /t REG_DWORD /d 855

Выглядеть это будет вот так

Убираем кракозябры через реестр

Так же создать ключ реестра можно и через PowerShell, вот такими командами:

New-Item -ErrorAction Ignore HKCU:Console%SystemRoot%_system32_cmd.exe
Set-ItemProperty HKCU:Console%SystemRoot%_system32_cmd.exe CodePage 855

создать ключ реестра можно и через PowerShell

Надеюсь, что у вас теперь все будет в читаемом виде. На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Понравилась статья? Поделить с друзьями:
  • Красивые темы для windows 10 1920x1080
  • Кракозябры в командной строке windows 10
  • Красивые темы для windows 10 1909
  • Крайсис 1 не запускается на windows 10
  • Красивые стикеры на рабочий стол windows 10