相关疑难解决方法(0)

PHP解码和编码带有unicode字符的json

我有一些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)

php unicode json character-encoding

36
推荐指数
5
解决办法
12万
查看次数

标签 统计

character-encoding ×1

json ×1

php ×1

unicode ×1