Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组中的Json编码Unicode符号_Php_Json_Unicode - Fatal编程技术网

PHP数组中的Json编码Unicode符号

PHP数组中的Json编码Unicode符号,php,json,unicode,Php,Json,Unicode,给定以下数组 $locationIcon = array( 'face' => 'FontAwesome', 'code' => '\uf015', 'size' => 75, 'color' => 'gray', ); 这是通过json_encode编码的,我希望有以下输出: { face: 'FontAwesome', code: '\uf015', size: 75, color: 'gray' }

给定以下数组

$locationIcon = array(
    'face' => 'FontAwesome',
    'code' => '\uf015',
    'size' => 75,
    'color' => 'gray',
);
这是通过json_encode编码的,我希望有以下输出:

{
    face: 'FontAwesome',
    code: '\uf015',
    size: 75,
    color: 'gray'
}
但我得到的结果是:

版本1 如图所示,版本2 版本3添加转义字符
你知道我做错了什么吗?

好吧,你已经写了零一五的反斜杠u字符串,JSON编码保留了这个意思。没有理智的方法可以解决这个问题。写入所需的实际字符,而不是\uf015。由于此特定字符可能会有点难以写入,请使用其他符号(如原始UTF-8字节)进行写入:

$locationIcon = [
    'code' => "\xEF\x80\x95",  // U+F015
    ...
];

echo json_encode($locationIcon);  // {"code": "\uf015", ...}

好的,您已经编写了字符串反斜杠u f零一五,以及JSON编码,它完全保留了这个含义。没有理智的方法可以解决这个问题。写你想要的实际字符,而不是\uf015。虽然我理解你的意思,但我该如何写图标的实际字符?你想改为序列化吗?谢谢这项工作,但你是如何将\uf015转换为\xEF\x80\x95的?我在Unicode表中查找了它。如果您想在纯PHP中实现,可以使用echo bin2hexjson_decode'\uf015';当然,PHP 7中的Unicode转义符号也可以:
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"}
$locationIcon = [
    'code' => "\xEF\x80\x95",  // U+F015
    ...
];

echo json_encode($locationIcon);  // {"code": "\uf015", ...}