UTF-8 to UTF-16LE левые битые символы...

ast-ross

Новичок
UTF-8 to UTF-16LE левые битые символы...

В общем скрипт сохранен в UTF-8


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-16 Little Endian ">
</head>
<body>
PHP:
<?
$my_str = "Проверка";
echo iconv("UTF-8", "UTF-16LE", $my_str);
?>
</body>
</html>


На что получаю:
слово проверка а вокруг иероглифы, до и после... При чем и после mb_convert_encoding то же самое

Куда копать???
 

440hz

php.ru
в FF и OP кажет нормально. IE - бред

http://440hz.ru/trash/utf16le/

PHP:
<?
$CD = 'UTF-16LE';
header('Content-type: text/html; charset="'.$CD.'"');

$my_str = "<html><body>Hello! Проверка</body></html>"; 

echo iconv("UTF-8", $CD, $my_str); 

?>
т.е. нужно конвертить весь html.
 

ast-ross

Новичок
мне надо текст полученный в utf-8 затолкать в файл в utf-16le и отправить по FTP на win сервак, так вот битый получаеться текст в файле, потом когда открываю блокнотом там не иероглифы а квадраты
 

440hz

php.ru
когда открываю блокнотом
открой вордом и проставь там нужную кодировку. блокнот может не понять сие чудо.

хотя нет. открыл у себя исходник html в блокноте - все пучком. все видно.

ты кодируешь ВЕСЬ текст? вместе с тегами? т.е. нужно ВСЕ что ты посылаешь кодировать. все.
 

ast-ross

Новичок
Автор оригинала: ast-ross
мне надо текст полученный в utf-8 затолкать в файл в utf-16le и отправить по FTP на win сервак, так вот битый получаеться текст в файле, потом когда открываю блокнотом там не иероглифы а квадраты
Кодирую абсолютно все, весь текст приходит в одной переменной $ru_text методом пост через аякс, там после escape аякса применяю
$ru_text = preg_replace('#%u([0-9A-F]{4})#se','iconv("UTF-16BE","UTF-8",pack("H4","$1"))',$ru_text);
А потом $ru_text = iconv("UTF-8", "UTF-16LE", $ru_text );
ну и далее пишу в локально в линухе в файл содержимое $ru_text и отправляю по фтп
 
Сверху