- Заметки Лёвика
- web программирование, администрирование и всякая всячина, которая может оказаться полезной
- PHP iconv — кодировка из utf-8 windows-1251
- Если не работает iconv
- iconv array для массива
- Комментарии (3) к записи “PHP iconv — кодировка из utf-8 windows-1251”
- Iconv для windows не работает
- Создание игр на Unreal Engine 4
- Iconv не срабатывает для кодировки «cp-1251»
- Русские субтитры: ICONV для Windows — Русские субтитры
- ICONV для Windows Перекодировка текстовых файлов
- #1 Drunkenmunky
- iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
- Re: iconv спотыкается
Заметки Лёвика
web программирование, администрирование и всякая всячина, которая может оказаться полезной
PHP iconv — кодировка из utf-8 windows-1251
При помощи функции php iconv (строго говоря, это не совсем функция PHP, она использует стороннюю библиотеку (есть iconv.dll и php_iconv.dll или iconv.so), которой может не быть на хостинге) легко преобразовать кодировку (например, из windows-1251 в utf-8 и наоборот:
$s = iconv( «cp1251″,»UTF-8», $s);
$s = iconv(«UTF-8», «windows-1251», $s);
Однако, если не работает iconv на хостинге, а преобразовать текст из одной кодировки в другую необходимо, можно воспользоваться сторонними функциями (на самом деле, встречал несколько вариантов — какой из них лучше.. или точнее “более рабочий” — не скажу).
Про преобразование UFT-8 сущностей я уже писал ранее , однако иногда требуется наоборот перевести текст из cp1251 в utf-8 — например.
Если не работает iconv
function iconv ($in_charset, $out_charset, $str) string — для преобразования из Windows в UTF-8 выполняем один из вызовов
iconv( «cp1251″,»UTF-8», $s);
iconv( «windows-1251″,»UTF-8», $s);
выдаёт пустую строку (если в $s нет английских символов — они в любой кодировке отображаются одинаково) на некоторых хостингах можно попробовать использовать функцию mb_convert_encoding — у неё другой порядок аргументов!
function mb_convert_encoding ($str, $to_encoding, $from_encoding = null) string
Т.е. чтобы преобразовать текст из кодировки windows-1251 в UTF-8 следует выполнить:
mb_convert_encoding($s,»UTF-8″,»windows-1251″);
iconv array для массива
В некоторых ситуациях преобразовать одномерный или многомерный массив из одной кодировки в другую (например, из utf8 в windows-1251) с сохранением ключей массива. Для решения, можно использовать несколько способов.
// если не требуется сохранять предыдущий массив, для экономии
// передаем его по ссылке, происходит замена внутри
function utf8to1251(&$text) <
$text = iconv(«utf-8», «windows-1251», $text); //without return
>
array_walk_recursive($array, «utf8to1251»);
Или, если требуется оставить исходный массив без изменений — можно воспользоваться:
$newArray = array_map(create_function(‘$v’, ‘return iconv(«utf-8», «windows-1251», $v);’), $oldArray);
Метки: iconv
Опубликовано Пятница, Октябрь 21, 2011 в 15:02 в следующих категориях: Без рубрики. Вы можете подписаться на комментарии к этому сообщению через RSS 2.0. Вы можете оставить комментарий. Пинг отключен.
Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)
html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)
ссылка (для отправки по почте)
Комментарии (3) к записи “PHP iconv — кодировка из utf-8 windows-1251”
Как быть с запросом select к базе mssql не понимает кирилицу
“select
[Название]
,[номер]
, [Removed]
from imdb.dbo. Оконечное оборудование “;
Следует привести столбцы (или всю базу данных сразу) к соответствующему сравнению (кодировке)
ALTER DATABASE COLLATE Cyrillic_General_CI_AS
Или использовать Nvarchar
declare @test TABLE
(
Col1 varchar(40),
Col2 varchar(40),
Col3 nvarchar(40),
Col4 nvarchar(40)
)
INSERT INTO @test VALUES
(‘иытание’,N’иытание’,’иытание’,N’иытание’)
SELECT * FROM @test
В старом скрипте на php 5.3 работает
function conv($text) <
return iconv(’UTF-8′, ‘WINDOWS-1251′, $text);
>
Если изменяю версию php 5.6 то не перекодируется. Не подскажете?
Iconv для windows не работает
Создание игр на Unreal Engine 4
Данный курс научит Вас созданию игр на Unreal Engine 4. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.
В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.
Помимо самого курса Вас ждёт ещё 5 бесплатных ценных Бонусов: «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства» и «Создание прототипа RPG с открытым миром».
Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.
Подписаться
Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.
Подписаться
Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.
Мой аккаунт Моя группа
Зачем Вы изучаете программирование/создание сайтов?
Программирование на C++ для начинающих
Бесплатный курс по C++ даст Вам отличный старт для начала программирования на этом языке. В курсе Вас ждёт множество уроков (больше 4-х часов видео), исходников и упражнений.
Чтобы получить Видеокурс,
заполните форму
Создание лендингов на заказ
Придя на семинар:
— Вы узнаете мою историю, как я начинал создавать сайты на заказ.
— Вы узнаете, почему сейчас самое время начать этим заниматься.
— Вы получите очень подробный пошаговый план действий по созданию и продвижению своей Web-студии с комментариями, в том числе, и в виде PDF.
— Вы узнаете, как и где найти сотрудников, как общаться с заказчиками.
— Вы узнаете, как максимально автоматизировать бизнес-процессы.
После семинара Вы уже самостоятельно сможете, следуя простому и подробному плану, открыть свою Web-студию и получить первые заказы.
Iconv не срабатывает для кодировки «cp-1251»
Использование iconv для преобразования из windows-1251
Синтаксис мне подсказали: , . А какой для неё код для 1251?
Как написать регулярное выражение для выдергивания английских букв и символов: «+», «,», «:», «-«, » «, «!», «?» и «.»
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и.
Для каждой строки найти слова, которые не имеют ни одного из букв: «l», «k», «r», «s» i «j»
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются.
Переключите браузер на кодировку UTF-8 и этот текст будет отображен правильно.
Добавлено через 1 минуту
Вот прямо на этой странице переключил кодировку и увидел ваш текст «Тема».
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
MySQL: «UTF-8» vs «Windows-1251»
Сразу к делу; Есть БД-MySQL+phpmyadmin(3.2.3); Таблица 3 поля (id, login, password); В каждом.
Определить предыдущий и последующий символ для символа «F» по таблице кодировки.
Задание 2 Составить программу, которая бы определила предыдущий и последующий символ для сим-вола.
Загрузка данных из XML в TreeView и ошибка «Недопустимый знак для указанной кодировки»
Господа прошу помощи. Ситуация такая имею на форме TreeView, DataGridView,TextBox. в форме: .
Русские субтитры: ICONV для Windows — Русские субтитры
- Русские субтитры
- >Переводы
- >Полезные линки
- Правила форума
- Просмотр новых публикаций
ICONV для Windows Перекодировка текстовых файлов
#1
Drunkenmunky
- Группа: Members
- Сообщений: 142
- Регистрация: 24 Май 11
- Пол: Мужчина
- Город: Николаев
- Страна:
Утилита и набор библиотек предназначена для изменения кодировки текстовых файлов.
В том числе в пакетном режиме.
Установка.
Со страницы скачиваем и запускаем последнюю версию(на сегодня с 2004 года это 1.9.2 )
После чего задаём переменную PATH в которую необходимо поместить путь к исполняемым файлам установленной программы(C:\Program Files\GnuWin32\bin).
Почему это не делается при установке автоматически, затрудняюсь сказать. Возможно таким образом разработчик пытается показать, что в Linux(откуда портирована программа) это считается тривиальной задачей, понятной даже начинающему пользователю.
Для Windows 7 это выглядит таким образом:
Для Windows XP таким:
(Обратите внимание на разделители между значениями переменной, если они есть. Если нет то используйте точку с запятой)
Можно поступить проще и скопировать содержимое папки (но не её саму), а это четыре файла, «C:\Program Files\GnuWin32\bin» в каталог C:\WINDOWS.
Но это считается плохим тоном.
Всё. Можно работать.
Обработка одного файла.
Предположим, что в папке D:\Documents\Мои видеозаписи\movies имеется папка с неким сериалом.
В которой, помимо видеофайла(ов) имеется файл субтитров в кодировке UTF-8. Скажем: «серия_1.srt».
Обратите внимание, что названия перекодируемых файлов не должны содержать пробелов, и, вероятно, спецсимволов.
Что, видимо, есть недосмотр разработчика.
И переходим в каталог D.
(Здесь по умолчанию мы перейдём в папку D:\Documents, но не всегда будет так)
Затем переходим в папку с нашим сериалом
И задаём команду для iconv
Всё, если в исходном файле(который, напоминаю, в многобайтной кодировке UTF-8) не встречаются символы отсутствующие в кодировке Windows(однобайтная кодировка), то мы заимеем необходимое.
В противном случае, мы получим частично перекодированный файл, перекодирование которого остановится при первом вхождении отсутствующего символа.
Для того что-бы этого не произошло, команду для iconv необходимо составить в таком виде:
Что, как понятно из названия введенных опций, приведёт к транслитерированию неизвестных символов, либо их пропуску.
Обработка сразу всех файлов .srt в каталоге.
Предположим, что нам желательно перекодировать все имеющиеся в папке субтитры.
Для чего в неё помещаем файл с расширением .bat с таким содержимым
И выполняем его.
Для более продвинутого использования «LibIconv for Windows» читаем прилагаемый к ней мануал и учимся пользоваться командными файлами.
Так же, программа легко может использоваться другими приложениями нуждающимися в перекодировании текста.
iconv спотыкается
Читаю книги командой вида:
iconv -f koi-8 -t utf-8 -c
При этом пропадают некоторые буквы и куски слов: пропадают «ё», «интеллигент» превращается в «нт» и т.п. Без -c вылетает с ошибкой о недопустимом символе на первом же «ё». Что делать, куда копать? Локаль — ru_RU.UTF-8, дистрибутив — Fedora Core 6.
Re: iconv спотыкается
Извиняюсь. На и не обращайте внимания.
Re: iconv спотыкается
man iconv -у него есть список не работающих комбинаций кодировок
В частности из koi8 в utf-8
Re: iconv спотыкается
Оппа. А почему так?
Re: iconv спотыкается
потому что когда придумывается новая кодировка ,авторов меньше всего волнует возможность свободной конвертации в. и из.
Re: iconv спотыкается
> потому что когда придумывается новая кодировка ,авторов меньше всего волнует возможность свободной конвертации в. и из.
В стандарте на КОИ-8 ё есть. В UCS-2 ё есть. В UTF-8 ё есть. В чём может быть проблема? Или он использует какую-то свою хитрую внутреннюю кодировку? А с сочетаниями букв тем более непонятно.
Понимаю, что вопрос не по адресу, поэтому буду тем более рад ответу.
Re: iconv спотыкается
> man iconv -у него есть список не работающих комбинаций кодировок
В самом man iconv о неработающих КОМБИНАЦИЯХ ни слова. Я правильно понял, что имелось в виду что-то вроде man 3 iconv_open ?
Re: iconv спотыкается
у меня под фрей -прямо в man iconv
Re: iconv спотыкается
У меня в мане написано, что он от BSD, но про комбинации — ни слова. Датирован, правда, 2001 годом. Ладно, буду копать дальше.
Re: iconv спотыкается
Re: iconv спотыкается
Попробуй использовать piconv (iconv, переписаный на перле) — с ним таких проблем вроде нет.
С иконвом подобное тоже встречал, так до конца и не разобрался.
Можешь ещё enca (enconv) попробовать — она ещё и кодировку входного файла сама определяет.
Re: iconv спотыкается
А не проще ли iconv -f koi-8 -t cp1251 | iconv -f 1251 и ничего искать не надо?
Re: iconv спотыкается
>iconv -f koi-8 -t utf-8 -c
А это точно что koi-8, может koi8-r ?
Re: iconv спотыкается
само собой это был koi8-r (очепятка)
Re: iconv спотыкается
>А это точно что koi-8, может koi8-r ?
Принимает и то и другое. Результат тоже один.
Re: iconv спотыкается
> А не проще ли iconv -f koi-8 -t cp1251 | iconv -f 1251 и ничего искать не надо?
А сработает? Ошибка — на недопустимый для КОИ-8 символ.
Re: iconv спотыкается
Стало интересно. Скачал libiconv с gnu.org — оно здорово отличается от того, что в Федоре. Кто-нибудь может подсказать, в каком RPM находится iconv ? Заранее спасибо.
Re: iconv спотыкается
>Кто-нибудь может подсказать, в каком RPM находится iconv ? Заранее >спасибо.