在PHP json_encode中,朝鲜语字符是断开的。如何才能解决这个问题?
我使用了var_dump,但我需要JSON类型。
我的虚拟主机是5.2 PHP版本,所以我不能使用
print(json_encode($json_output, JSON_UNESCAPED_UNICODE));
while($row=mysqli_fetch_assoc($query)) {
$json_output[]=$row;
}
print(json_encode($json_output));bellow是破碎的字符
[
{
"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"
}
]发布于 2016-07-28 19:07:04
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}
发布于 2016-07-28 18:43:57
这个没坏。这些奇怪的序列是unicode字符。您可以尝试使用
print(json_encode($json_output, JSON_UNESCAPED_UNICODE));取而代之的是,如果你是PHP >= 5.4。这应该保持unicode字符的原始形式。但在存储或传输JSON字符串时,这可能会导致其他一些问题。
https://stackoverflow.com/questions/38633903
复制相似问题