PHP如何把数组里的中文Unicode转换成Utf-8编码

PHP如何把数组里的中文Unicode转换成Utf-8编码,第1张

很明显你截的图是是JSON数据,如果是数组应二维数组的括号应该是[]而不是{}。

所以转换应该使用json_decode。比如对象名为$list,则:$list = json_decode($list, true);

出现中文Unicode的问题是,存储数据转成json时第二个参数使用错误,包含中文而不转义的需要使用JSON_UNESCAPED_UNICODE;这样存到数据库才是中文。如:$list = json_encode($list, JSON_UNESCAPED_UNICODE);

function unicode2utf8($str){

    if(!$str) return $str;

    $decode = json_decode($str);

    if($decode) return $decode;

    $str = '["'  $str  '"]';

    $decode = json_decode($str);

    if(count($decode) == 1){

        return $decode[0];

    }

    return $str;

}

这是unicode编码,使用这个函数可以很好的将unicode编码转为utf-8编码。详细的原理可以参考这篇博文《php将unicode编码转为utf-8方法》:>

直接给你提供PHP代码

// 以下方法可以将Unicode编码的中文转换成utf8编码的中文,且对原来就是utf8编码的中文没影响:

public static function decodeUnicode($str){

return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H", $matches[1]));'), $str);

}

mb_convert_encoding

(PHP 4 >= 406, PHP 5, PHP 7)

mb_convert_encoding — 转换字符的编码

说明

string mb_convert_encoding    ( string $str   , string $to_encoding   [, mixed $from_encoding = mb_internal_encoding()  ] )

将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。

$txt = mb_convert_encoding(  $txt , 'UTF-8' , 'UCS-2');

以上就是关于PHP如何把数组里的中文Unicode转换成Utf-8编码全部的内容,包括:PHP如何把数组里的中文Unicode转换成Utf-8编码、php中如何转换变量的编码、「PHP」怎样将Unicode编码转换为正嗦等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9461847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存