Как преобразовать Unicode в коды типа � ?

espada

Guest
Как преобразовать Unicode в коды типа � ?

Требуется заменить в текстовом файле все символы Unicode на коды типа �

Я знаю только один способ - открыть файл в браузере как Unicode и пересохранить, как Win-1251. Но с многомегабайтными файлами такой фокус не проходит.

Наверняка должен быть другой способ. Возможно, это можно проделать с помощью PHP или существуют специальные утилиты. Подскажите, пожалуйста!
 

rotoZOOM

ACM maniac
Если я тебя правильно понял, то это пишется в несколько строчек (хоть на Си, хоть на PHP).
Прочитал все (можно построчно).
Заменил, как надо.
Сохранил.
 

SiMM

Новичок
> Требуется заменить в текстовом файле все символы Unicode на коды типа �
Нет такой кодировки - Unicode. Есть класс кодировок. А кодировки - нет.
[m]function.iconv[/m]
[m]unpack[/m]
PS: я бы делал регулярником ;)
 

espada

Guest
Я имею в виду ту кодировку, которая в HTML задлается тегом <meta http-equiv=Content-Type content=text/html; charset=unicode>, а в русском Ворде опознается, как "Юникод".
 

SiMM

Новичок
> Я имею в виду ту кодировку, которая в HTML задлается тегом <meta http-equiv=Content-Type content=text/html; charset=unicode>,
Идёшь сюда, видишь, что это utf-16, а Юникодов - дофигу.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: espada
Требуется заменить в текстовом файле все символы Unicode на коды типа &#0000;
PHP:
$str = 'Текст';
$t   = unpack('n*', iconv('кодировка докУмента', 'ucs-2be', $str));
$new = '';
foreach ($t as $it) {
    if ($it < 128) {
        $new .= chr($it);
    } else {
        $new .= sprintf('&#x%x;', $it);
    }
}
echo $new;
 
Сверху