"\ U00ed" gibi Unicode kaçış dizilerini çözmek için nasıl

2 Cevap php

Unicode kaçış "\u00ed" için "í" gibi diziler ve diğer tüm benzer olayları deşifre PHP'de bir işlevi var mı?

Ben benzer bir soru here bulundu ama çalışmak için görünmüyor edilir.

2 Cevap

Bu deneyin:

function replace_unicode_escape_sequence($match) {
    return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}
$str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str);

Durumda C / C + + / Java / Json-style tabanlı UTF-16 bulunuyor:

preg_replace_callback('/(?:\\\\u[0-9a-fA-Z]{4})+/', function ($v) {
    $v = strtr($v[0], array('\\u' => ''));
    return mb_convert_encoding(pack('H*', $v), 'UTF-8', 'UTF-16BE');
}, $string);

PHP6 function

<?php
header ('Content-Type: text/plain; charset=ISO-8859-2');
$encoded = unicode_encode ('\u0068\u0074\u0074\u0070', 'ISO-8859-2');