将包含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"}'

我正在尝试将包含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"}';

$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服务端解决这个问题。谢谢你的帮助。