永发信息网

这个php的unicode_decode()自编函数还有救不?

答案:2  悬赏:20  手机版
解决时间 2021-02-10 01:12
function unicode_decode($name){
$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
preg_match_all($pattern, $name, $matches);
if (!empty($matches)){
$name = '';
for ($j = 0; $j < count($matches[0]); $j++){
$str = $matches[0][$j];
if (strpos($str, '\\u') === 0){
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);

$c = chr($code).chr($code2);
echo $c = iconv('UCS-2', 'UTF-8', $c);
$name .= $c;
}else{
$name .= $str;
}
}
}
return $name;
}
$name = 'Goodbaby\u597d\u5b69\u5b50\u6c7d\u8f66\u5b89\u5168\u5ea7\u6905CS808-L002\uff08\u84dd\u8272) \u5e26isofix\u63a5\u53e3 \u9002\u54080-18kg(\u7ea60-4\u5c81';
echo unicode_decode($name);
?>
变量$name中的\u字符转成中文,原话是: Goodbaby好孩子汽车安全座椅CS808-L002(蓝色) 带isofix接口 适合0-18kg(约0-4岁)

用这函数转出来的结果是:好孩子汽车安全座椅(蓝色带接口适合约岁Goodbaby好孩子汽车安全座椅CS808L002(蓝色带isofix接口适合018kg约04岁

发现没?“-”号全部不见了,更可怕的是文字顺序都乱了,我希望转换完成后,保留“-”号,和文字顺序不乱,谢谢

...
最佳答案
换个更快捷简短的反编译函数吧!
function unicode_decode($name){

$json = '{"str":"'.$name.'"}';
$arr = json_decode($json,true);
if(empty($arr)) return '';

return $arr['str'];

}
?>
全部回答
你好! 表示对正则表达式不是很了解,但是网上是用正则测试工具的。 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鑫玉鑫百果园果蔬超市(广场三店)在哪里啊,我
【飞机抛油时油都到哪里去了?飞机多余的油直
绿大地土特产地址好找么,我有些事要过去
我购门面房一间,想知道现在武汉市门面房的产
力天检具有限公司地址在什么地方,想过去办事
gtx1060移动版和gtx970m性能相差多少
射阳特产专卖行地址有知道的么?有点事想过去
下图是某植物叶肉细胞中光合作用和呼吸作用的
卓杰地产地址在哪,我要去那里办事
雅思考试与普通英语考试的区别主要有哪些
组成符合要求的数从0、5、6、7四个数中,按要
晓铝摩托修理店这个地址在什么地方,我要处理
沈氏特产商行地址好找么,我有些事要过去
用一个平面去截一个正方体,不可能出现的是什
新纪元学校站自行车租赁点我想知道这个在什么
推荐资讯
画一个底为6厘米,面积为18平方厘米的平行四边
苏宁电器怎么样?商品出现问题 售后服务好吗
栅格模式是储存分析地理空间数据的主要方式之
初二快期末的时候出了意外,初三开学才办休学
罗源寺在哪里啊,我有事要去这个地方
请问青岛登山日是那天
张伙房屯这个地址在什么地方,我要处理点事
我离婚后分得的财产现在要准备结婚我想一个人
新乡县七里营供销合作社我想知道这个在什么地
北胡同五巷地址在什么地方,想过去办事
赛菲尔珠宝婚庆旗舰店在哪里啊,我有事要去这
中国邮政储蓄银行绑定手机号码后不用此卡了怎
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?