使用php进行未知编码和编码转换

时间:2012-10-11 15:29:03

标签: php encoding utf-8

我正在为我的项目使用第三方授权服务。这个服务返回我的名字:u0438u0432u0430u043d,但我的名字是 - иван。如何在PHP中将编码值(u0438u0432u0430u043d)转换为иван? 谢谢!

2 个答案:

答案 0 :(得分:1)

你有Unicode十六进制序列 - 尝试调整这样的东西......

function decodeToUTF8($s) {
    //turn udddd into an HTML entity
    $s=preg_replace('/u(....)/', '&#x$1;', $s);
    //turn entities into UTF-8
    return html_entity_decode($s, ENT_COMPAT, 'utf-8');
}

答案 1 :(得分:-1)

这是正确的解决方案:

protected static function decodeToUTF8($s) {
        //turn udddd into an HTML entity
        $s=preg_replace('/u([A-Fa-f0-9]{4})/', '&#x$1;', $s);
        //turn entities into UTF-8
        return html_entity_decode($s, ENT_COMPAT, 'utf-8');
    }