给出以下数组
$locationIcon = array(
'face' => 'FontAwesome',
'code' => '\uf015',
'size' => 75,
'color' => 'gray',
);
通过json_encode
编码的,我希望得到以下输出:
{
face: 'FontAwesome',
code: '\uf015',
size: 75,
color: 'gray'
}
但是我得到了以下结果:
json_encode($array)
=>
"icon":{"face":"FontAwesome","code":"\\uf2bd","size":40,"color":"gray"}
json_encode($array, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
=>
"icon" {"face":"FontAwesome","code":"\\uf2bd","size":40,"color":"gray"} (same)
$locationIcon = array(
'face' => 'FontAwesome',
'code' => sprintf('%cuf2bd', 27),
'size' => 100,
'color' => 'gray',
);
json_encode($array)
=>
"icon" {"face":"FontAwesome","code":"\u001buf233","size":40,"color":"gray"}
有什么想法我做错了吗?
答案 0 :(得分:1)
好吧,您已经编写了字符串“反斜杠u f零一五”,并使用JSON编码对其进行了精确保留。周围没有理智的办法。输入所需的实际字符,而不是“ \ uf015”。由于此特定字符的书写可能有些尴尬,因此请以其他替代符号(例如原始UTF-8字节)进行书写:
$locationIcon = [
'code' => "\xEF\x80\x95", // U+F015
...
];
echo json_encode($locationIcon); // {"code": "\uf015", ...}