Как конвертировать из UTF-16LE в 1251

ALL

Guest
Как конвертировать из UTF-16LE в 1251

Здравствуйте!!Как конвертировать из UTF-16LE в 1251?
я использовал iconv, но не получилось. iconv работает класно, но почему-то некоторые, в данном случае эту кодировку, не хочет конвертировать. Подскажите как можно еще это осуществить?
У меня получилось, правда конвертировать в HTML формат, но все таже проблема, как из него конвертировать в обычный текст? Может так проще ? Не знаю.
Спасибо.
 

SiMM

Новичок
> iconv работает класно, но почему-то некоторые, в данном случае эту кодировку, не хочет конвертировать.
Наглая ложь. Всё прекрасно и изюмительно работает.
PHP:
<?=iconv('UTF-16LE','CP1251',iconv('CP1251','UTF-16LE','Проверка'))?>
hint: BOM
 

ALL

Guest
А че делать может я скачал не полную версию? или еще что
выдается ошибка WARRNING:Cannot convert from ' UTF-16LE' to 'CP1251' Подскажите чего делать вся работа стоит.
 

ALL

Guest
Чего удалять не понял? Можно подробней.
SIMM помоги не шарю толком.
 

SiMM

Новичок
Удалять BOM (Byte Order Mark).
PHP:
function UTF16LEwithORwithoutBOMtoCP1251($str){
  if (substr($str,0,2)=="\xFF\xFE") return substr($str,2);
  return $str;
}
 

ALL

Guest
Даже на твою строчку
<?=iconv('UTF-16LE','CP1251',iconv('CP1251','UTF-16LE','Проверка'))?>
появляется сообщение
Warning: iconv: cannot convert from `CP1251' to `UTF-16LE' in /ReporterA/test.php on line 154
Может Удалять BOM (Byte Order Mark) не надо, в чем то другом проблема? Причем при конвертировании в сочетании с другими кодировками все работает, ну правда еще есть парочка кодировок с такимиже ошибками.
 

SiMM

Новичок
> Может Удалять BOM (Byte Order Mark) не надо, в чем то другом проблема?
Ты думаешь, мы телепаты? Ты же даже тестовую строку не привёл, на которой оно у тебя валится (только не надо постить сюда десятикилобайтную строку - достаточно НЕБОЛЬШОЙ строчки, на которой всё валится, в идеале - выдай дамп, получаемый скриптом
PHP:
function hex_dump($str){
  return substr(preg_replace('#.#se','sprintf(".%02X",ord("$0"))',$str),1);
}
echo hex_dump(ТВОЯ_СТРОКА);
)
 
Сверху