首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php json_encode朝鲜语字符损坏。如何解决这个问题?

php json_encode朝鲜语字符损坏。如何解决这个问题?
EN

Stack Overflow用户
提问于 2016-07-28 18:35:50
回答 2查看 952关注 0票数 1

在PHP json_encode中,朝鲜语字符是断开的。如何才能解决这个问题?

我使用了var_dump,但我需要JSON类型。

我的虚拟主机是5.2 PHP版本,所以我不能使用

代码语言:javascript
复制
print(json_encode($json_output, JSON_UNESCAPED_UNICODE));


while($row=mysqli_fetch_assoc($query)) {
    $json_output[]=$row;
}

print(json_encode($json_output));

bellow是破碎的字符

代码语言:javascript
复制
[
   {
      "name":"chulhoon",
      "description":"\ud558\ud558\ud638\ud638",
      "dob":"\uc548\ub155\ud558\uc138\uc694",
      "county":"\ub9cc\ub098\uc11c",
      "height":"\ubc18\uac00\uc6cc\uc694",
      "spouse":"\ubb50\ub4e4\ud558\uc138\uc694",
      "children":"\uc774\ubbf8\uc9c0\uc55e\uc790\ub9ac",
      "image":"http:\/\/microblogging.wingnity.com\/JSONParsingTutorial\/johnny.jpg"
   }
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-28 19:07:04

代码语言:javascript
复制
function json_encode2($data) {
    switch (gettype($data)) {
        case 'boolean':
            return $data?'true':'false';
        case 'integer':
        case 'double':
            return $data;
        case 'string':
            return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"';
        case 'array':
            $rel = false; // relative array?
            $key = array_keys($data);
            foreach ($key as $v) {
                if (!is_int($v)) {
                    $rel = true;
                    break;
                }
            }

            $arr = array();
            foreach ($data as $k=>$v) {
                $arr[] = ($rel?'"'.strtr($k,array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v);             
        }

        return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']';
    default:
        return '""';
}

}

这真是太酷了!谢谢大家。

echo json_encode2($data);

json_encode2

{“test”:“测试数据”,"sample":"sample字符串“,"data2":0,1,2,3,{"beskin":"31"},"bool":true,"number_data":33282,"pi":3.14}

票数 -1
EN

Stack Overflow用户

发布于 2016-07-28 18:43:57

这个没坏。这些奇怪的序列是unicode字符。您可以尝试使用

代码语言:javascript
复制
print(json_encode($json_output, JSON_UNESCAPED_UNICODE));

取而代之的是,如果你是PHP >= 5.4。这应该保持unicode字符的原始形式。但在存储或传输JSON字符串时,这可能会导致其他一些问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38633903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档