我见过许多与UTF-8编码问题有关的问题,但大多数都试图对数组值进行编码。
我的问题在于数组键。
我想编码一个包含特殊字符键的数组。
这是我的数组在没有json_encode
的情况下的外观:
array(2) {
["Paição"]=>
string(8) "Paição"
["São"]=>
string(10) "São Paulo"
}
使用json_encode($array)
:
{
"Pai\\u00e7\\u00e3o": "Paição",
"S\\u00e3o": "São Paulo"
}
到目前为止我已经尝试过解决这个问题的事情:
utf8_encode()
JSON_UNESCAPED_UNICODE
$array = array_map('htmlentities',$array); $json = html_entity_decode(json_encode($array));
答案 0 :(得分:0)
您可以在urlencode()
之前尝试json_encode()
字符串,然后url_decode()
json_encode()
的返回值。
答案 1 :(得分:0)
如果您在浏览器中查看json_encode()结果,可能会添加:
header('Content-Type: text/plain; charset=UTF-8');
或手动将标题添加到标题中:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
将解决您的问题