Есть ли функция, которая изменит UTF-8 на Unicode, оставив неспециальные символы как обычные буквы и цифры?
, т.е. немецкое слово «tchüß» будет отображаться как что-то вроде «tch \ 20AC \ 21AC» (обратите внимание, что я увеличиваю коды Unicode).
РЕДАКТИРОВАТЬ: Я экспериментирую со следующей функцией, но хотя этот хорошо работает с ASCII 32–127, кажется, что он не работает для двухбайтовых символов:
function strToHex ($string)
{
$hex = '';
for ($i = 0; $i < mb_strlen ($string, "utf-8"); $i++)
{
$id = ord (mb_substr ($string, $i, 1, "utf-8"));
$hex .= ($id <= 128) ? mb_substr ($string, $i, 1, "utf-8") : "" . $id . ";";
}
return ($hex);
}
Есть идеи?
РЕДАКТИРОВАТЬ 2: Найдено решение: функция PHP ord () не работает для двухбайтовых символов. Используйте вместо этого : http://nl.php.net/manual/en/function.ord.php#78032