我有一些json我需要解码,更改然后编码而不会弄乱任何字符.
如果我在json字符串中有一个unicode字符,它将无法解码.我不确定为什么因为json.org说字符串可以包含:any-Unicode-character- except-"-or-\-or- control-character.但它在python中也不起作用.
{"Tag":"Odómetro"}
Run Code Online (Sandbox Code Playgroud)
我可以使用utf8_encode,它将允许使用json_decode对字符串进行解码,但是该字符会被破坏成其他内容.这是结果数组的print_r的结果.两个字符.
[Tag] => Odómetro
Run Code Online (Sandbox Code Playgroud)
当我再次对数组进行编码时,我将字符转义为ascii,根据json规范这是正确的:
"Tag"=>"Od\u00f3metro"
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解除这个吗?json_encode没有给出这样的选项,utf8_encode似乎也没有用.
编辑我看到json_encode有一个unescaped_unicode选项.然而,它没有按预期工作.哦该死的,它只在PHP 5.4上.我将不得不使用一些正则表达式,因为我只有5.3.
$json = json_encode($array, JSON_UNESCAPED_UNICODE);
Warning: json_encode() expects parameter 2 to be long, string ...
Run Code Online (Sandbox Code Playgroud)