UTF-8使用array_key编码问题

时间:2015-02-05 12:31:36

标签: php arrays json utf-8

我见过许多与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"
}

到目前为止我已经尝试过解决这个问题的事情:

  1. utf8_encode()
  2. JSON_UNESCAPED_UNICODE

  3. $array = array_map('htmlentities',$array); $json = html_entity_decode(json_encode($array));

2 个答案:

答案 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" />

将解决您的问题