【问题标题】:JSON Decode to UTF-8JSON 解码为 UTF-8
【发布时间】:2012-03-27 02:59:33
【问题描述】:

我想将 json 输出解码为 utf-8。

$sql = "select * from nganhang";
$kq = mysql_query($sql);

$posts = array();
while($post = mysql_fetch_assoc($kq)) 
    {
            $posts[] = array('node_list_bank'=>array_map('utf8_encode',$post));
        }

    header('Content-type: application/json');
    echo json_encode(array('list_bank'=>$posts));

这个输出

{"list_bank":[{"node_list_bank":{"manganhang":"acb","tennganhang":"Ng\u00c3\u00a2n h\u00c3\u00a0ng \u00c3\u0081 Ch\u00c3\u00a2u ACB"}},{"node_list_bank":{"manganhang":"agb","tennganhang":"Agribank - Ng\u00c3\u00a2n h\u00c3\u00a0ng n\u00c3\u00b4ng nghi\u00e1\u00bb\u0087p v\u00c3\u00a0 ph\u00c3\u00a1t tri\u00e1\u00bb\u0083n n\u00c3\u00b4ng th\u00c3\u00b4n Vi\u00e1\u00bb\u0087t Nam"}},{"node_list_bank":{"manganhang":"mhb","tennganhang":"Ng\u00c3\u00a2n h\u00c3\u00a0ng ph\u00c3\u00a1t tri\u00e1\u00bb\u0083n nh\u00c3\u00a0 \u00c4\u0091\u00e1\u00bb\u0093ng b\u00e1\u00ba\u00b1ng s\u00c3\u00b4ng C\u00e1\u00bb\u00adu Long"}},{"node_list_bank":{"manganhang":"bidv","tennganhang":"Ng\u00c3\u00a2n h\u00c3\u00a0ng \u00c4\u0090\u00e1\u00ba\u00a7u t\u00c6\u00b0 v\u00c3\u00a0 Ph\u00c3\u00a1t tri\u00e1\u00bb\u0083n Vi\u00e1\u00bb\u0087t Nam"}},{"node_list_bank":{"manganhang":"vdb","tennganhang":"Ng\u00c3\u00a2n h\u00c3\u00a0ng Ph\u00c3\u00a1t tri\u00e1\u00bb\u0083n Vi\u00e1\u00bb\u0087t Nam"}},{"node_list_bank":{"manganhang":"vbsp","tennganhang":"Ng\u00c3\u00a2n h\u00c3\u00a0ng Ch\u00c3\u00adnh s\u00c3\u00a1ch X\u00c3\u00a3 h\u00e1\u00bb\u0099i Vi\u00e1\u00bb\u0087t Nam"}}]}

我想要输出结果格式 uft-8 ... 怎么办 :(

$encode = json_encode(array('list_bank'=>$posts));
$decode = json_decode($encode,true);
echo $decode;

对不起,我的英文不好:(

【问题讨论】:

  • 嗯,你现在得到了什么?此外,数据必须以 UTF-8 格式的 json_encoded 开头。
  • "Ng\u00c3\u00a2n h\u00c3\u00a0ng Ph\u00c3\u00a1t tri\u00e1\u00bb\u0083n Vi\u00e1\u00bb\u0087t Nam ...这个输出...我想退出这个“Ngân hàng Phát triển Việt Nam”
  • 发布list_bank'=>$posts的数组结果
  • 那是json_encoded的,能看到数组吗?

标签: php json


【解决方案1】:

您可能需要发送正确的标题。

header('Content-Type: text/html; charset=utf-8');

$encode = json_encode(array('list_bank'=>$posts));
$decode = json_decode($encode, true);
print_r($decode);

另外,你不能echo 一个数组,你必须使用print_r。

【讨论】:

    【解决方案2】:

    在 .php 文件的开头包含下一个标头

    <?php
    header('Content-type: application/json; charset=UTF-8');
    ...
    

    并在您的 json_encode 中添加“JSON_UNESCAPED_UNICODE”

    echo json_encode(array('list_bank'=>$posts), JSON_UNESCAPED_UNICODE);
    

    请务必删除不必要的 utf8_encode() 和 json_decode()。

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 2016-05-11
      • 2019-09-15
      • 2017-06-28
      • 1970-01-01
      • 2018-11-17
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多