Конвертер кодировок текста

Перекодировать UTF-8 в Windows-1251 онлайн

За запросом «перекодировать UTF-8 в Windows-1251» обычно стоит одна из двух задач. Первая — получить файл в Windows-1251 для программы, которая не понимает Юникод: старой учётной системы, банк-клиента, кассового ПО или сайта, который до сих пор работает в однобайтовой кириллице. Вторая — прочитать текст, который уже испорчен: вместо букв в нём стоят пары символов вроде Привет, РјРёСЂ. Конвертер на этой странице решает обе.

Как сохранить текст или файл в Windows-1251

  1. Нажмите «Загрузить файл» и выберите файл в UTF-8 или просто вставьте текст в верхнее поле.
  2. Убедитесь, что текст в поле читается нормально.
  3. Под полем результата выберите кодировку файла Windows-1251 (на этой странице она уже выбрана) и нажмите «Скачать файл в этой кодировке».

Если поле результата пустое, в файл попадёт исходный текст; если в нём что-то есть — результат. Переводы строк сохраняются в формате Windows, поэтому файл одинаково откроется и в Блокноте, и в старых программах.

Учтите ограничение самой кодировки: в Windows-1251 всего 256 символов. Кириллица, латиница, цифры, кавычки-ёлочки, длинное тире, «№» и знак евро в ней есть, а эмодзи, иероглифы, знаки вроде «≈» или «→» и буквы многих других алфавитов — нет. Такие символы в файле заменяются на «?», и конвертер предупредит об этом сообщением.

Как исправить текст «РџСЂРёРІРµС‚»

Чередование заглавных «Р» и «С» с другими знаками — верный признак того, что текст в UTF-8 открыли как Windows-1251. В UTF-8 каждая русская буква занимает два байта, первый из которых почти всегда равен D0 или D1. В Windows-1251 эти байты — буквы «Р» и «С», поэтому каждая буква превращается в пару символов, а текст становится вдвое длиннее.

Вставьте такой текст в верхнее поле и нажмите «Определить кодировку текста» — конвертер сам подберёт пару кодировок и покажет исправленный вариант. Вручную то же самое делается так: исходная кодировка — Windows-1251 (в ней текст сейчас отображается), нужная — UTF-8 (в ней он был записан). На этой странице эти значения выбраны заранее.

Если текст выглядит как Привет — с пробелами и знаками вроде «вЂ», — его испортили дважды. Исправьте его один раз, скопируйте результат в верхнее поле и запустите определение ещё раз.

Как перекодировать файл без сайта

ПрограммаЧто сделать
Блокнот Windows«Файл» → «Сохранить как», в списке «Кодировка» выбрать ANSI. В русской версии Windows это и есть Windows-1251.
Notepad++«Кодировки» → «Преобразовать в ANSI». Пункт «Кодировки» → «Кириллица» → «Windows-1251» не перекодирует файл, а только меняет способ отображения уже записанных байтов.
Командная строка Linux и macOSiconv -f UTF-8 -t WINDOWS-1251 input.txt > output.txt
Pythonopen('out.txt', 'w', encoding='cp1251').write(open('in.txt', encoding='utf-8').read())

Файл в Windows-1251 получится заметно меньше исходного: русская буква в нём занимает один байт вместо двух.

Частые вопросы

Почему после перекодировки в Windows-1251 часть символов стала вопросительными знаками?
В Windows-1251 нет этих символов: эмодзи, математических знаков, стрелок, иероглифов, букв многих европейских алфавитов. Записать их в однобайтовую кодировку невозможно, поэтому они заменяются на «?». Если такие символы нужны, оставьте файл в UTF-8.
Чем «Преобразовать в ANSI» отличается от выбора кодировки Windows-1251 в Notepad++?
«Преобразовать» переписывает байты файла в новой кодировке. Выбор кодировки в меню «Кириллица» байты не трогает, а лишь показывает их так, как будто файл уже записан в Windows-1251. Первое нужно, чтобы перекодировать файл, второе — чтобы прочитать файл, который открылся кракозябрами.
Файл в Windows-1251 открывается кракозябрами. Я что-то сделал не так?
Скорее всего, нет. Многие современные редакторы по умолчанию считают файлы записанными в UTF-8. Откройте файл с явным указанием кодировки Windows-1251 или проверьте его в той программе, для которой он предназначен.