Как перекодировать файл из utf 8 в windows 1251

Обновлено: 07.07.2024

О разнице между двумя кодировками utf-8 и windows 1251

О кодировках utf-8 и windows 1251

Самое главное. что нас интересует, как и меня - в чем же отличие кодировок utf-8 и windows 1251. И отличается только кириллица!

Чем отличаются utf-8 и windows 1251

UTF-8 - это много-байтовая кодировка, а Windows- 1251 однобайтовая. И более того, отличие только в кириллице.

Количество байтов кириллицы в UTF-8 будет в 2 раза больше, чем 1). латиницы в UTF-8 и 2). латиницы + кириллицы в Windows- 1251 → пример

Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.

Что такое кодировка windows 1251

Что такое кодировка UTF-8

Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.

Пример вывода текста в кодировках utf-8 латиницы

Когда и если вы прочитали теорию о разнице кодировок utf-8 и windows 1251 - это уже победа!

А если вы еще и поняли о чем идет речь, то вы вообще Эйнштейн! , то и смысла особого вам читать дальше нет.

А для всех остальных продолжим.

Чем отличается текст в кодировках utf-8 и windows 1251

Теория - это конечно классно и круто, но как обстоит дело на практике!

Как показать отличие двух кодировок!?

У нас на сайте основная кодировка utf-8, и мы не напрягаясь можем посмотреть, что творится с текстом в этой кодировке!

Нам понадобится какой-то текст на латинице:

И. нам нужно такое слово, чтобы имело одинаковое количество букв в слове, ну пусть это будет моё имя.

Пусть это будет слово - "Marat!"

Далее нам потребуется функция var_dump.

И выведем прямо здесь вот такую конструкцию :

Что мы здесь можем прочитать!?

Что это строка, и что в ней 5 элементов.

Пример вывода текста в кодировках utf-8 кириллицы

Теперь, проделаем тоже самое со строкой на кириллице:

У нас все таже кодировка utf-8.

Но теперь нам понадобится текст на кириллице:

Пусть это будет слово - "Марат!"

И выведем прямо здесь вот такую конструкцию :

И что мы здесь видим!?

Что количество элементов в строке 10. Если вы читали теорию внимательно, то вот вам показатель того, что одна буква состоит из двух символов, а латиницы это не касается.

Поэтому, и возникают проблемы с текстов в кодировке utf-8 кириллицы, множество функций тупо не работают.

Как пример. как-то я задолбался со strtolower в utf-8 для кириллицы, что решил написать собственную функцию strtolower, чтобы каждый раз не городить этажерку из нескольких функций.

Пример отличия в кодировках utf-8 и windows 1251

Если вы поленились прочитать два верхних пункта, то ещё раз выведем результаты вывода текста на латинице и на кириллице с одним количеством букв.

Результат вывода var_dump('Marat'); :
string(5) "Marat"
Результат var_dump('Марат'); :
string(10) "Марат"

Что делать, если функция для кириллицы на utf-8 не работают?

Поскольку я давно занимаюсь сайтами, то могу сказать, что на самом деле таких случаев не так много, когда нужна какая-то специальная функция для обработки кириллицы на utf-8.

Но если уж она возникала, то есть несколько вариантов решения!

Это функции с приставкой "mb_", естественно надо проверять, работает ли она у вас на хостинге.

Второй вариант, это написать собственную функцию, которая будет работать и для латиницы и кириллицы? как это я показал на функции strtolower

Кодировка текста – это схема нумерации символов, в которой каждому символу, цифре или знаку присвоено соответствующее число. Кодировку используют для сохранения и обработки текста на компьютере. Каждый раз при сохранении текста в файл он сохраняется с использованием определенной схемы кодирования, и при открытии этого файла необходимо использовать такую же схему, иначе восстановить исходный текст не получится. Самыми популярными кодировками для кириллицы сейчас являются UTF-8, Windows-1251 (CP1251, ANSI).

Для того чтобы программа смогла правильно открыть текстовый файл, иногда приходится вручную менять кодировку, перекодируя текст из одной схемы в другую. Например, не редко возникают проблемы с открытием файлов CSV, XML, SQL, TXT, PHP.

В этой небольшой статье мы расскажем о том, как изменить кодировку текстового файла на UTF-8, Windows-1251 или любую другую.

Блокнот Windows

Если вы используете операционную систему Windows 10 или Windows 11, то вы можете изменить кодировку текста с помощью стандартной программы Блокнот. Для этого нужно открыть текстовый файл с помощью Блокнота и воспользоваться меню « Файл – Сохранить как ».

меню Файл – Сохранить как

В открывшемся окне нужно указать новое название для файла, выбрать подходящую кодировку и нажать на кнопку « Сохранить ».

изменить кодировку в Блокноте

К сожалению, для подобных задач программа Блокнот часто не подходит. С ее помощью нельзя открывать документы большого размера, и она не поддерживает многие кодировки. Например, с помощью Блокнота нельзя открыть текстовые файлы в DOS 866.

Notepad++

Notepad++ (скачать) является одним из наиболее продвинутых текстовых редакторов. Он обладает подсветкой синтаксиса языков программирования, позволяет выполнять поиск и замену по регулярным выражениям, отслеживать изменения в файлах, записывать и воспроизводить макросы, считать хеш-сумы и многое другое. Одной из основных функций Notepad++ является поддержка большого количества кодировок текста и возможность изменения кодировки текстового файла в UTF-8 или Windows 1251.

Для того чтобы изменить кодировку текста с помощью Notepad++ файл нужно открыть в данной программе. Если программа не смогла правильно определить схему кодирования текста, то это можно сделать вручную. Для этого нужно открыть меню « Кодировки – Кириллица » и выбрать нужный вариант.

выбрать кодировку в Notepad++

После открытия текста можно изменить его кодировку. Для этого нужно открыть меню « Кодировки » и выбрать один из вариантов преобразования. Notepad++ позволяет изменить текущую кодировку текста на ANSI (Windows-1251), UTF-8, UTF-8 BOM, UTF-8 BE BOM, UTF-8 LE BOM.

изменить кодировку в Notepad++

После преобразования файл нужно сохранить с помощью меню « Файл – Сохранить » или комбинации клавиш Ctrl-S.

Akelpad

Akelpad (скачать) – достаточно старая программа для работы с текстовыми файлами, которая все еще актуальна и может быть полезной. Фактически Akelpad является более продвинутой версией стандартной программы Блокнот из Windows. С его помощью можно открывать текстовые файлы большого размера, которые не открываются в Блокноте, выполнять поиск и замену с использованием регулярных выражений и менять кодировку текста.

Для того чтобы изменить кодировку текста с помощью Akelpad файл нужно открыть в данной программе. Если после открытия файла текст не читается, то нужно воспользоваться меню « Файл – Открыть ».

открыть файл в Akelpad

В открывшемся окне нужно выделить текстовый файл, снять отметку « Автовыбор » и выбрать подходящую кодировку из списка. При этом в нижней части окна можно видеть, как будет отображаться текст.

выбрать кодировку в Akelpad

Для того чтобы изменить текущую кодировку текста нужно воспользоваться меню « Файл – Сохранить как » и сохранить документ с указанием новой схемы кодирования.

изменить кодировку в Akelpad

В отличие от Notepad++, текстовый редактор Akelpad позволяет сохранить файл в практически любой кодировке. В частности, доступны Windows 1251, DOS 886, UTF-8 и многие другие.

Имеется файл в кодировке utf-8 с текстом ТОЛЬКО на латинице. Пробую с помощью notepad++ перекодировать его в windows-1251. Сохраняю, открываю заново, но файл читается все равно в кодировке utf-8 (без BOM). Вопрос: как мне сделать, чтобы файл был в кодировке windows-1251, иначе его не может использовать одна программка. И как вообще любая программа, использующая файл, определяет его кодировку? Как например тот же notepad++ может понять кодировку, если все символы в нем на латинице, а их коды совпадают и в windows-1251 и utf-8?

148 1 1 золотой знак 2 2 серебряных знака 13 13 бронзовых знаков @eicto в случае латиницы частотным анализом разделить cp1251 и utf8 сложновато:) Я думаю, что notepad++ просто берет utf8 как более оптимальный вариант. а каким тогда образом мне заставить прогу видеть этот файл в кодировке windows-1251, не изменяя видимой контент? Просто у нас куплена прога и ей нужен файл именно в этой кодировке. Владелец проги прислал нам файл который сначала и был в windows-1251 и в нем были только латинские символы, но мы пересохранили этот файл, ничего не добавляя и теперь невозможно вернуть его опять в кодировку windows-1251 @KoVadim если это текст на латинице без единого управляющего кода, то это не-utf (ну или utf, короче говоря его кодировка utf/latin-1 не имеет значения, так-же как невозможно сказать по начертанию , на каком именно языке написано "A" )

Собственно с чего Вы взяли, что в Вашем файле отсутствует BOM?

Если в файле текст ТОЛЬКО на латинице, то кодировки utf-8 и 1251 отличаются только наличием/отсутствием BOM'а.

Собственно то, что Вы написали про пересохранение, как раз очень похоже на добавление BOM'а.

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

В общем, Вам нужно удалить из файла первые два байта (ну или затереть их допустим пробелами), причем сделать это надо не в текстовом редакторе (ну или в редакторе, который не знает, что такое utf-8).

Вроде бы задача тривиальная - берем любой кодировщик и кодируем из widows-1251 в utf-8, но не тут то было, так можно делать если у нас десяток файлов.

А если файлов тысяча? Да и еще не скопом, а каждая группа в своей подкатегории

Сразу в голову приходит идея - берем пакетный перекодировщик файлов и кодируем одним мановением мыши.

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

И так, необходим конвертер для пакетной кодировки в UTF.

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

После тщательных поисков было найдено решение!

Он позволяет легко и быстро в автоматическом режиме перекодировать каталог и все файлы в подкаталогах. Но у него есть небольшая особенность! Так как версия Экспресс бесплатная - то она не имеет опции конвертировать в UTF-8 без BOM (BOM - Byte Order Mark, служит для идентификации кодировок UTF)

Эта тоже замечательная программа - прекрасно справляется с удалением BOM в UTF файлах. А главное рекурсивно все содержимое каталога и подкаталогов!

Вот такой связкой можно решить такой важный вопрос.

Способ 2. У меня не срабатывает.

Для семейства Windows есть программка файловый менеджер Far Manager. Это консольный файловый менеджер. К нему есть плагины, один из которых нам и поможет с массовой перекодировкой файлов.

Скачиваем его, устанавливаем:

1. Создайте папку FarTrans в C:\Program Files\Far\Plugins

2. Скопируйте скачанные файлы из архива в эту папку FarTrans

3. Перезапустите FAR Manager

4. Выделяйте файлы и выбирая в плагинах Transcod (он же FarTrans) указываете нужный вариант кодировки (у нас - UTF-8)


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

Кодировка текста в Microsoft Excel

С потребностью менять кодировку текста часто сталкиваются пользователи, работающие браузерах, текстовых редакторах и процессорах. Тем не менее, и при работе в табличном процессоре Excel такая необходимость тоже может возникнуть, ведь эта программа обрабатывает не только цифры, но и текст. Давайте разберемся, как изменить кодировку в Экселе.

Работа с кодировкой текста

Кодировка текста – эта набор электронных цифровых выражений, которые преобразуются в понятные для пользователя символы. Существует много видов кодировки, у каждого из которых имеются свои правила и язык. Умение программы распознавать конкретный язык и переводить его на понятные для обычного человека знаки (буквы, цифры, другие символы) определяет, сможет ли приложение работать с конкретным текстом или нет. Среди популярных текстовых кодировок следует выделить такие:

  • Windows-1251;
  • KOI-8;
  • ASCII;
  • ANSI;
  • UKS-2;
  • UTF-8 (Юникод).

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

Чаще всего, программа сама распознаёт кодировку и автоматически переключается на неё, но в отдельных случаях пользователю нужно указать приложению её вид. Только тогда оно сможет корректно работать с кодированными символами.

Некорректные символы в Microsoft Excel

Наибольшее количество проблем с расшифровкой кодировки у программы Excel встречается при попытке открытия файлов CSV или экспорте файлов txt. Часто, вместо обычных букв при открытии этих файлов через Эксель, мы можем наблюдать непонятные символы, так называемые «кракозябры». В этих случаях пользователю нужно совершить определенные манипуляции для того, чтобы программа начала корректно отображать данные. Существует несколько способов решения данной проблемы.

Способ 1: изменение кодировки с помощью Notepad++

К сожалению, полноценного инструмента, который позволял бы быстро изменять кодировку в любом типе текстов у Эксель нет. Поэтому приходится в этих целях использовать многошаговые решения или прибегать к помощи сторонних приложений. Одним из самых надежных способов является использование текстового редактора Notepad++.

    Запускаем приложение Notepad++. Кликаем по пункту «Файл». Из открывшегося списка выбираем пункт «Открыть». Как альтернативный вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+O.

Переход к отрытию файла в Notepad++

Открытие файла в Notepad++

Изменение кодировки файла в Notepad++

Сохранение файла в Notepad++

Корректное отображение символов в Microsoft Excel

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

Способ 2: применение Мастера текстов

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

    Запускаем программу Excel. Нужно активировать именно само приложение, а не открыть с его помощью документ. То есть, перед вами должен предстать чистый лист. Переходим во вкладку «Данные». Кликаем на кнопку на ленте «Из текста», размещенную в блоке инструментов «Получение внешних данных».

Переход к добавлению текста в Microsoft Excel

Импорт файла в Microsoft Excel

Переход к выбору кодировки в Мастере текстов в Microsoft Excel

Мастер текстов в Microsoft Excel

Второе окно мастера текста в Microsoft Excel

  • Общий;
  • Текстовый;
  • Дата;
  • Пропустить столбец.

Третье окно мастера текста в Microsoft Excel

Координаты вставки в Microsoft Excel

Текст добавлен в файл в Microsoft Excel

Способ 3: сохранение файла в определенной кодировке

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

    Переходим во вкладку «Файл». Кликаем по пункту «Сохранить как».

Переход в сохранить как в Microsoft Excel

Переход в сервис в Microsoft Excel

Параметры веб-документа в Microsoft Excel

Сохранение файла в Microsoft Excel

Документ сохранится на жестком диске или съемном носителе в той кодировке, которую вы определили сами. Но нужно учесть, что теперь всегда документы, сохраненные в Excel, будут сохраняться в данной кодировке. Для того, чтобы изменить это, придется опять заходить в окно «Параметры веб-документа» и менять настройки.

Существует и другой путь к изменению настроек кодировки сохраненного текста.

    Находясь во вкладке «Файл», кликаем по пункту «Параметры».

Переход в параметры в Microsoft Excel

Переход в параметры документа в Microsoft Excel

Параметры веб-документа в Microsoft Excel

Теперь любой документ, сохраненный в Excel, будет иметь именно ту кодировку, которая была вами установлена.

Как видим, у Эксель нет инструмента, который позволил бы быстро и удобно конвертировать текст из одной кодировки в другую. Мастер текста имеет слишком громоздкий функционал и обладает множеством не нужных для подобной процедуры возможностей. Используя его, вам придется проходить несколько шагов, которые непосредственно на данный процесс не влияют, а служат для других целей. Даже конвертация через сторонний текстовый редактор Notepad++ в этом случае выглядит несколько проще. Сохранение файлов в заданной кодировке в приложении Excel тоже усложнено тем фактом, что каждый раз при желании сменить данный параметр, вам придется изменять глобальные настройки программы.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: