Как поменять кодировку в cmd
Перейти к содержимому

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

  • автор:

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

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

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных 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

Как изменить кодировку в консоли windows для отображения кириллицы?

Шрифт на Lucida Console поменял.
Команду chcp 65001 вводил. Помогло, но при перезапуске консоли все настройки сбиваются. Как сохранить настройки кодировки?

  • Вопрос задан более трёх лет назад
  • 8688 просмотров

Комментировать
Решения вопроса 1
Developer, ex-admin

Что cmd в винде уже нормально переносит UTF8?
Помнится в Вин7 и ниже его корежило если выставить UTF8. Правда я с тех пор этой темой не интересовался.

Но я бы просто использовал chcp. Можете сделать себе ярлык на раб.столе на cmd.exe, чтоб там при запуске срабатывала эта команда.

Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

windows

  • Windows
  • +2 ещё

Почему при импорте .ova в VMware Player иногда не работает интернет?

  • 1 подписчик
  • час назад
  • 15 просмотров

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

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

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

cmd-normal-encoding-866

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

cmd-wrong-encoding-1251

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

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

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

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

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

cmd-normal-encoding-1251

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

[Шрифт cmd.exe]

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

[Ссылки]

Как сменить кодировку UTF-8 в cmd windows?

Файл должен выводиться в utf-8, а в консоли — 866, в итоге, в браузере отображаются ромбы. После команды chcp 65001 ничего не поменялось. Поскольку в консоли используется кодовая страница 866, то если в реестре поменять значение REG_SZ -параметра «866» под ключом [HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage] с «C_866.nls» (по умолчанию) на иное, то и кодировка в cmd также должна измениться. Но у меня в CodePage таких файлов нет. Есть типы REG.SZ по умолчанию и 4 файла с номерами 932 936 949 950. Вариант постоянно изменять в консоли chcp не подходит, но и не работает. Lucida console подключен в консоли. Cygwin64 Terminal и Gitbash не запускает python server Какие-то ещё есть варианты? generate_all.py

# coding: utf-8 from horoscope import generate_prophecies from datetime import datetime as dt def generate_page(head, body): page = f" " return page def generate_head(title): head = f"""  """ return head def generate_body(header, paragraphs): body = f" " for p in paragraphs: body = body + f" 

" return f" " def save_page(title, header, paragraphs, output="index.html"): fp = open(output, "w") today = dt.now().date() page = generate_page( head=generate_head(title), body=generate_body(header=header, paragraphs=paragraphs) ) print(page, file=fp) fp.close() ##################### today = dt.now().date() save_page( title="Гороскоп на сегодня", header="Что день " + str(today) + " готовит", paragraphs=generate_prophecies(), )

horoscope.py

import random times = ['утром', 'днем', 'вечером', 'ночью', 'после обеда', 'перед сном'] advices = ['ожидайте', 'предостерегайтесь', 'будьте открыты для'] promises = ['гостей из забытого прошлого', 'встреч со старыми знакомыми', 'неожиданного праздника', 'приятных перемен'] def generate_prophecies(total_num=5, num_sentences=3): prophecies = [] for i in range(total_num): forecast = '' for j in range(num_sentences): t = random.choice(times) a = random.choice(advices) p = random.choice(promises) full_sentence = f'  

.' if j != num_sentences - 1: full_sentence = full_sentence + ' ' forecast = forecast + full_sentence prophecies.append(forecast) return prophecies

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *