1

Тема: PHP: Перевод Unicode строки в HEX и обратно

Как можно на PHP перевести Unicode UTF-16 строку в HEX и обратно?

str = Привет Мир!

hex = 041f044004380432043504420020041c043804400021

2

Re: PHP: Перевод Unicode строки в HEX и обратно

http://ideone.com/G2W5Fy:

echo bin2hex(iconv('UTF-8', 'UTF-16BE', 'Привет Мир!'));
echo "\n";
echo iconv('UTF-16BE', 'UTF-8', hex2bin('041f044004380432043504420020041c043804400021'));

3

Re: PHP: Перевод Unicode строки в HEX и обратно

В поиске искал так ничего внятного не находил.
Благодарю, то что надо!

4

Re: PHP: Перевод Unicode строки в HEX и обратно

Еще такой вопрос, что можно использовать, что бы в данном решении заменить функцию hex2bin на такую которая будет выполнять то же действие на php версии 5.3  ?
Потому как функция hex2bin работает только начиная с версии php 5.4
На некоторых хостингах доступно только 5.3 или же при выборе более новой версии надо менять PHP как Apache на PHP как CGI.

5

Re: PHP: Перевод Unicode строки в HEX и обратно

function hex2bin($hex) {
    $str = "";
    for ($i = 0; $i < strlen($hex); $i += 2)
        $str .= chr(hexdec(substr($hex, $i, 2)));
    return $str;
}

6

Re: PHP: Перевод Unicode строки в HEX и обратно

Проверил на php 5.3, работает отлично!
Благодарю!