@seredaes

PHP Преобразовать строку в UTF код?

Нужно преобразовать строку в такой вид:

366ef212c69c467f988052f53b4e80e6.png
Помогите пожалуйста :)
  • Вопрос задан
  • 1249 просмотров
Решения вопроса 2
miraage
@miraage
Старый прогер
function convert($str) {
    $str = mb_convert_encoding($str , 'UTF-32', 'UTF-8'); // Big endian
    $t = unpack('N*', $str);
    $t = array_map(function($n) { return "&#$n;"; }, $t);

    return join('', $t);
}

var_dump(convert('foo bar')); // string(39) "foo bar"


Если надо в unicode sequence - посмотрите этот вопрос на stackoverflow и примените обратную трансформацию.
Ответ написан
@seredaes Автор вопроса
Сам решил :) Извратная функция, может и проще есть...

function seredaes($string)
{
$array = preg_split('//u', $string, -1, PREG_SPLIT_NO_EMPTY);
$j = count($array);
$result_str="";
for ($i = 0; $i < $j; $i++)
{
$text = iconv("UTF-8", "windows-1251", $array[$i]);
$res = ord($text);

if(($res>=192) && ($res<=255))
{
$res = $res + 848;
$result_str = $result_str."\u0".dechex($res);
}

if($res==32)
{
$result_str = $result_str." ";
}
}
return $result_str;
}


echo seredaes ("А а")
Выдаст результат в: \u \u

Проверенно, работает и валидацию в JSON проходит
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы