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

Опять в php, использование iconv дает сбои.

function cp1251_to_utf8 ($txt)  {
    $in_arr = array (
        chr(208), chr(192), chr(193), chr(194),
        chr(195), chr(196), chr(197), chr(168),
        chr(198), chr(199), chr(200), chr(201),
        chr(202), chr(203), chr(204), chr(205),
        chr(206), chr(207), chr(209), chr(210),
        chr(211), chr(212), chr(213), chr(214),
        chr(215), chr(216), chr(217), chr(218),
        chr(219), chr(220), chr(221), chr(222),
        chr(223), chr(224), chr(225), chr(226),
        chr(227), chr(228), chr(229), chr(184),
        chr(230), chr(231), chr(232), chr(233),
        chr(234), chr(235), chr(236), chr(237),
        chr(238), chr(239), chr(240), chr(241),
        chr(242), chr(243), chr(244), chr(245),
        chr(246), chr(247), chr(248), chr(249),
        chr(250), chr(251), chr(252), chr(253),
        chr(254), chr(255)
    );

    $out_arr = array (
        chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
        chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
        chr(208).chr(149), chr(208).chr(129), chr(208).chr(150),
        chr(208).chr(151), chr(208).chr(152), chr(208).chr(153),
        chr(208).chr(154), chr(208).chr(155), chr(208).chr(156),
        chr(208).chr(157), chr(208).chr(158), chr(208).chr(159),
        chr(208).chr(161), chr(208).chr(162), chr(208).chr(163),
        chr(208).chr(164), chr(208).chr(165), chr(208).chr(166),
        chr(208).chr(167), chr(208).chr(168), chr(208).chr(169),
        chr(208).chr(170), chr(208).chr(171), chr(208).chr(172),
        chr(208).chr(173), chr(208).chr(174), chr(208).chr(175),
        chr(208).chr(176), chr(208).chr(177), chr(208).chr(178),
        chr(208).chr(179), chr(208).chr(180), chr(208).chr(181),
        chr(209).chr(145), chr(208).chr(182), chr(208).chr(183),
        chr(208).chr(184), chr(208).chr(185), chr(208).chr(186),
        chr(208).chr(187), chr(208).chr(188), chr(208).chr(189),
        chr(208).chr(190), chr(208).chr(191), chr(209).chr(128),
        chr(209).chr(129), chr(209).chr(130), chr(209).chr(131),
        chr(209).chr(132), chr(209).chr(133), chr(209).chr(134),
        chr(209).chr(135), chr(209).chr(136), chr(209).chr(137),
        chr(209).chr(138), chr(209).chr(139), chr(209).chr(140),
        chr(209).chr(141), chr(209).chr(142), chr(209).chr(143)
    );

    $txt = str_replace($in_arr,$out_arr,$txt);
    return $txt;
}

Источник

Recoder v3.1.0 (BOM-remover)

github

Небольшая программа для массового (пакетного) перекодирования файлов из одной кодировки в другую. Доступные кодировки windows-1251, koi8-r, cp866, ISO 8859-5, utf-8, utf-8 с BOM-заголовком. Также умеет искать и удалять BOM-заголовок в файлах и каталогах.

Текущая версия: ¶

  • Скачать recoder v3.1.0 для Windows 7+ 64-бит (9.7 MB)

    Запускается без установки, не требует дополнительных библиотек.

  • Скачать recoder v3.1.0 для Ubuntu 20.04+ 64-бит (10.8 MB)

    Запускается без установки, не требует дополнительных библиотек.

Некоторые антивирусы (например, VirusTotal) могут показывать наличие вирусов в исполняемом файле. Это связано с использованием PyInstaller и его модулей.
Если это является проблемой, то проект можно запускать из исходного кода или использовать версию v2.

Последнее изменение: ¶

  • 3 декабря 2022 г. — добавлена галочка «Искать в подкаталогах».
  • 5 марта 2022 г. — приложение переписано на Python (tkinter) с публикацией исходного кода.

Предыдущие версии: ¶

  • v3.0.0: Windows (9.7 MB), Linux (11 MB)
  • v2.3.0: Windows (7.9 MB), Linux (74 kB)
  • v2.2.2: Windows (7.9 MB), Linux (67.7 kB)
  • v2.2.1: Windows (7.9 MB), Linux (66.5 kB)
  • v2.1.1: Windows (7.2 MB), Linux (48.8 kB)
  • v2.1: Windows (8.2 MB), Linux (48.5 kB)
  • v2.0: Windows (7.9 MB)

Скриншоты ¶

Recoder 3.0.0

Recoder 3.0.0


Программа позволяет перекодировать текстовые файлы из кодировки UTF-8 в кодировку Windows-1251, а также добавлять маркер UTF-8, если его нет. Автор статьи: romix | Редакторы:
Последняя редакция №3 от 03.07.07 | История
URL: http://kb.mista.ru/article.php?id=481

Ключевые слова: кодировка, utf-8, windows-1251, windows

http://x-romix.narod.ru/UTF8_1251.rar

(скачивать ЛЕВОЙ кнопкой мыши, 24К)

Пример вызова:

utf8_1251.exe test_utf8.xml test.xml

Программа изменяет объявление кодировки в первой строке XML.

Перекодирование из Windows-1251 в UTF-8

Перекодирует XML-файл из кодировки Windows-1251 в UTF8.

Если файл уже в кодировке UTF8, то он остается как есть.

Если файл не содержит маркера кодировки UTF8, то добавляет его.

Вызов win1251_utf8.exe Файл1.xml Файл2.xml

Добавление маркера в UTF-8

Используйте ту же самую программу win1251_utf8.exe для добавления маркера UTF-8.

Если кодировка уже была UTF-8, и был маркер, то файл не изменится.


smaharbA пишет:

9 — 28.02.07 — 21:52

//*******************************************
 
Процедура Сформировать()
    Стрим = СоздатьОбъект("Adodb.Stream");
    Стрим.Type = 2;
    Стрим.Mode= 3;
    Стрим.charset="utf-16";
    //Стрим.charset="windows-1251";
 
    Стрим.Open();
    Стрим.WriteText("Проверочка");
    Стрим.SaveToFile("c:\unicode.txt",2);
    Стрим.Close();
    Стрим.charset="koi8-r";
    Стрим.Open();
    Стрим.WriteText("Проверочка");
    Стрим.Close();
    Стрим.charset="utf-8";
    Стрим.Open();
    Стрим.WriteText("Проверочка");
    Стрим.SaveToFile("c:\utf-8.txt",2);
    Стрим.Close();
КонецПроцедуры

Привет, друзья. Я уже 3 года работаю с вебом, но с таким не встречался еще. В чем суть:
Есть у меня кириллический текст с кодировкой UTF-8 и отображается он нормально.
Мне нужно изменить кодировку на windows-1251 так, чтобы кириллический текст так же нормально читабельно отображался. И вот что-то ну вообще не могу взять в толк, как это сделать?


  • Вопрос задан

  • 23884 просмотра

Пригласить эксперта

для большого количества файлов есть однострочник на powershell:

Get-ChildItem folderwithfiles -File | foreach {Get-Content $_.fullname -Encoding UTF8 | Out-File folderwithconvertedfiles\$_ -encoding default}

Одна загвоздка : encoding default — берет кодировку системы.
Проверить что это windows 1251 можно так(powershell) :
[System.Text.Encoding]::Default.Codepage

Вы имеете в виду, самостоятельно, а не в программном коде? Тогда с помощью Вашего текстового редактора, которым Вы пользуетесь. Например, если Вы предпочитаете Sublime Text, то просто воспользуйтесь пунктом меню File->Save with encoding > Cyrillic (Windows 1251)


  • Показать ещё
    Загружается…

09 окт. 2023, в 16:18

1000 руб./в час

09 окт. 2023, в 15:39

20000 руб./за проект

09 окт. 2023, в 15:37

35000 руб./за проект

Минуточку внимания

AU

На сайте с 01.07.2011

Offline

96

11808

Всем доброго времени суток.

Столкнулся с проблемкой, notepad++ не делает перекодировку файла из utf8 на win1251.

Может кто знает, какие то способы или софт, который сможет мне в этом помочь.

Заранее благодарю, за ответ.

Скрин:

LEOnidUKG

На сайте с 25.11.2006

Offline

1699

Какая версия нотепада и что значит не делает?

WebAlt

На сайте с 02.12.2007

Offline

245

Вместо кодировать, нужно преобразовать.

«Кодировки» >>> «Преобразовать в ANSI»

R

На сайте с 31.08.2010

Offline

78

нотепад обновите, хватит старьем пользоваться.

Какая версия нотепада и что значит не делает?

видимо старая раз на скрине utf8 w/o BOM

у меня utf8 as BOM

Вместо кодировать, нужно преобразовать.

«Кодировки» >>> «Преобразовать в ANSI»

у меня и кодировать работает и все норм. перекодирует.

L

На сайте с 30.10.2015

Offline

34

в блокноте выбираешь сохранить как, там есть выбор кодировки

sergv

На сайте с 13.04.2006

Online

397

Rokkkin:
видимо старая раз на скрине utf8 w/o BOM
у меня utf8 as BOM

При чем тут старая версия-то? BOM для php не уперся…

https://REGHOME.ru — регистрация и продление доменов от 169₽ в российских и международных зонах по честным ценам без звездочек. (R01, WebNames, UK2). Принимаем Ю-Money, Visa, MasterCard, Мир

Artisan

На сайте с 04.03.2005

Offline

337

AlexUzun:
не делает перекодировку файла из utf8 на win1251.

И это правильно, потому что

невозможно в общем случае.

1. Заменить знаки, которых

нет в Windows-1251 кодировке,

на знаки, которые там есть.

2. Пробовать перекодировать.

3. Если не получилось, goto 1

Если Вы хотите зарабатывать больше денег с меньшими усилиями, то спросите меня, как это делать. /// www.leak.info , бесплатный поиск входящих линков конкурентов, бесплатный поиск забытых доменов с входящими линками. /// www.venok.com , гибрид wiki и каталога сайтов с бесплатными объявлениями, можно даром размещать любое количество nofollow линков для полезных сайтов, в том числе для внутренних страниц, типа YouTube каналов и отдельных видео.

AU

На сайте с 01.07.2011

Offline

96

LEOnidUKG

На сайте с 25.11.2006

Offline

1699

Там только английские буквы, они в любой кодировки одинаковы. Вам зачем его в utf-8 то? Не знаете, что делать, так спросите полноценно.

AU

На сайте с 01.07.2011

Offline

96

LEOnidUKG:
Там только английские буквы, они в любой кодировки одинаковы. Вам зачем его в utf-8 то? Не знаете, что делать, так спросите полноценно.

Вот пример вывода скрипта, но это всего лишь малая часть. Другие страницы открываются тоже с эроглифами.

Скрин:




[Удален]

#10

meta charset пропишите в заголовке

  • Как переключиться на администратора в windows 11
  • Как переключить звук с монитора на колонки windows 10
  • Как переключиться на windows bootcamp
  • Как переключить звук на hdmi windows 10
  • Как переключиться на hdmi на ноутбуке windows 10