[php] htmlentities и utf-8

kruzer25

Как заставить htmlentities конвертировать utf-8-символы в соответствующие entities?
<?php

$sUnicode="йцук";
$sWin=mb_convert_encoding($sUnicode,"Windows-1251","UTF-8");
$sHTMLUnicode=htmlentities($sUnicode,ENT_QUOTES,"UTF-8");
$sHTMLWin=htmlentities($sWin,ENT_QUOTES,"Windows-1251");

echo $sHTMLUnicode."\r\n";
echo $sHTMLWin."\r\n";

?>

выдаёт
йцук
йцук
(а хочется, чтобы на выходе первая строчка была такой же, как вторая)

artimon

Нафига?

kruzer25

Потому что соседний тред.
А сейчас придётся из источника перегонять в cp1251 (при этом, конечно, куча всего потеряется а потом результат - в html-entities, то есть, обратно в юникод - изврат жуткий.

kruzer25

И вообще, когда для того, чтобы из utf-8 получить html-entities с такими же кодами, приходится использовать промежуточную 8битную кодировку - это какой-то пиздец.

kruzer25

Оказывается, проблемы можно решить, вместо htmlentities используя mb_convert_encoding($sUnicode,"HTML-ENTITIES","UTF-8").
Но тем не менее, почему htmlentities работает так неправильно?
Оставить комментарий
Имя или ник:
Комментарий: