Iconv windows 1251 не работает

Iconv не перекодирует.

Здрасте. Хочу исправить кодировку cue. Пишу

iconv -f iso-8859-15 -t windows-1251 -o out.cue in.cue и выдает: iconv: недопустимая входная последовательность в позиции 107, если добавить после iconv -c, то в файл русские буквы не пишутся.

Причем если я выбираю в онлайн перекодировщике те же кодировки и вставляю текст из cue, то все идеально переводится. Что не так?

Пример текста: PERFORMER «Êîðîëü è Øóò» TITLE «Òåíü Êëîóíà (2008, Íèêèòèí)»

iconv понимает, что акцентированные латинские буквы в русские никак не переконвертировать. Разные они. Как у тебя на самом деле все устроено, скажи лучше. Если там кодировка UTF-8, то надо делать что-нибудь такое:

Enca выдаёт: enca ‘/home/user/Music/file.cue’ MS-Windows code page 1251

А если и правда она однобитная в исходном файле, то вообще

Благодарю, добрый человече, все по русски теперь. Отчего такое быть может? Я уже в этих кодировках запутался.

iso-8859-15 и windows-1251 имеют обсалютно различный набор символов и не могут быть перекодированы одна в другую, что делает онлайн перекодировщик это у него нужно спросить .

Причины появления у тебя файлов в кодировке cp1251 мне нневедомы, увы. Наверное, с пользователями виндов якшаешься 🙂

Заметки Лёвика

web программирование, администрирование и всякая всячина, которая может оказаться полезной

PHP iconv — кодировка из utf-8 windows-1251

При помощи функции php iconv (строго говоря, это не совсем функция PHP, она использует стороннюю библиотеку (есть iconv.dll и php_iconv.dll или iconv.so), которой может не быть на хостинге) легко преобразовать кодировку (например, из windows-1251 в utf-8 и наоборот:

Читайте также:  Windows открыть сетевой принтер

$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 и на страницы сайта)

ссылка (для отправки по почте)

Читайте также:  Первая настройка ноутбука windows 10

Комментарии (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-1251 => utf-8 и Русская «Р»

tеam neko

Krishna

Продался Java

Тут было вот что: ))

Нижеприведенный скрипт при переводе слова «Расширенный» из 1251 в утф8 выдает нечто, что при обратном переводе обращается в пустое место. Грешу на iconv и большую русскую «Р».

iconv support enabled
iconv implementation libiconv
iconv library version 1.9

PHP 4.3.10 Build Date Jan 25 2005 23:20:29

ОС FreeBSD 5.3 Apache 1.3.33

iconv установлен как extension

tеam neko

iconv( «utf-8», «windows-1251», iconv( «windows-1251», «utf-8», $some ) );

а так ты пробовал?
без форм?

подобные баги в iconv маловероятны

Krishna

Продался Java

Я собственно пытаюсь найти ошибку и вполне допускаю, что она не в iconv
Остальные слова скрипт конвертил нормально.

Дело в пробеле?
Но он вроде бы передается нормально. :-\

iconv( «utf-8», «windows-1251», iconv( «windows-1251», «utf-8», ‘Работа’) );

да, нормально работает

Я так понимаю некий служебный символ образуется? Вразумите, как заставить обрабатывать скрипт любые тексты.

Iconv не срабатывает для кодировки «cp-1251»

Использование iconv для преобразования из windows-1251
Синтаксис мне подсказали: , . А какой для неё код для 1251?

Как написать регулярное выражение для выдергивания английских букв и символов: «+», «,», «:», «-«, » «, «!», «?» и «.»
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и.

Читайте также:  Как восстановить файлы если windows не загружается

Для каждой строки найти слова, которые не имеют ни одного из букв: «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 cp1251 > utf8

Не могу разобраться в чем причина, код

а поточнее не подскажите? попробовал уже разные варианты — никак не получается, вроде размеры везде нормально задал и типы и кодировки по разному писал.

куда уж точнее? проверяй код возврата iconv(). возможные варианты в моем каменте выше.

Проверяй и обрабатывай результат iconv, в случае успеха выведи обычным printf-ом, или что там у тебя вместо него, первые байты исходной и полученной строки. Как маленький, ей-богу.

ахаха, wolverin , точно! это тоже 🙂

но проверку return values, в любом случае, никто не отменял! )

БХААААААААА )))) ТОЧНО. СПАСИБО.

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

Так нельзя делать! НИ В КОЕМ СЛУЧАЕ! utf-8 символ может быть от 1 до 6 байт. Размер узнаётся благодаря соответствующей функции перекодировки (ртфм по iconv)

Оцените статью