将包含utf-8符号的json字符串转换为php数组
我正在尝试将包含utf-8符号的json字符串转换为php数组将包含utf-8符号的json字符串转换为php数组,php,utf-8,json,Php,Utf 8,Json,我正在尝试将包含utf-8符号的json字符串转换为php数组 $jsonString='{“loginid”:“90”,“用户名”:“\U0437\U0430\U043c\U043a\U0435”}”; $array=json_decode($jsonString,true); 不幸的是,json\u decode返回空值 我的错在哪里?试着摆脱你的伤痕 <?php $jsonString = '{"loginid" : "90", "username" : "\\\U0430"}'
$jsonString='{“loginid”:“90”,“用户名”:“\U0437\U0430\U043c\U043a\U0435”}”;
$array=json_decode($jsonString,true);
不幸的是,json\u decode
返回空值
我的错在哪里?试着摆脱你的伤痕
<?php
$jsonString = '{"loginid" : "90", "username" : "\\\U0430"}';
$array = json_decode($jsonString, true);
print "<PRE><FONT COLOR=ORANGE>"; print_r($array); print "</FONT></PRE>";
使用\u
而不是\u
。试试这个:
$jsonString = '{"loginid" : "90", "username" : "\u0437\u0430\u043c\u043a\u0435"}';
$array = json_decode($jsonString,true);
这不是有效的JSON。这是从哪里来的?它甚至都不是有效的PHP$jsonString
和$array
,也许?@deceze你完全正确。。。没有注意到缺失\是的有点明显。。。哦。所以提供这种服务的Web服务是有缺陷的。TYbprayudha用小写的u是对的。不管怎样,谢谢你的帮助:)是的,我有点匆忙发帖,没有回顾我输入的内容。修正了。你的建议也是对的,u应该是小写的。正如我在第一个答案中所评论的,我从中得到的Web服务没有提供正确的json。您只需先过滤它:$jsonString=preg\U replace(“/\\\U/”、“\U”、$jsonString)代码>是的,这是要走的路。我正要回答这个问题。不过,这更像是一种黑客行为。最好在web服务端解决这个问题。谢谢你的帮助。