Опять в 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)
Скриншоты ¶
Программа позволяет перекодировать текстовые файлы из кодировки 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.
Может кто знает, какие то способы или софт, который сможет мне в этом помочь.
Заранее благодарю, за ответ.
Скрин:
На сайте с 25.11.2006
Offline
1699
Какая версия нотепада и что значит не делает?
На сайте с 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
в блокноте выбираешь сохранить как, там есть выбор кодировки
…
На сайте с 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, Мир
На сайте с 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
На сайте с 25.11.2006
Offline
1699
Там только английские буквы, они в любой кодировки одинаковы. Вам зачем его в utf-8 то? Не знаете, что делать, так спросите полноценно.
AU
На сайте с 01.07.2011
Offline
96
LEOnidUKG:
Там только английские буквы, они в любой кодировки одинаковы. Вам зачем его в utf-8 то? Не знаете, что делать, так спросите полноценно.
Вот пример вывода скрипта, но это всего лишь малая часть. Другие страницы открываются тоже с эроглифами.
Скрин:
[Удален]
#10
meta charset пропишите в заголовке