У меня есть несколько json, которые мне нужно декодировать, изменять, а затем кодировать, не перепутывая символы.
Если в строке json есть символ Юникода, он не будет декодироваться.Я не уверен почему, так как json.org говорит, что строка может содержать: any-Unicode-character- except-"-or-\-or- control-character
.Но это также не работает в python.
{"Tag":"Odómetro"}
Я могу использовать utf8_encode, который позволит декодировать строку с помощью json_decode, однако персонаж будет искажен во что-то другое.Это результат print_r массива результатов.Два символа.
[Tag] => Odómetro
Когда я снова кодирую массив, я перебрался в ascii, что правильно в спецификации json:
"Tag"=>"Od\u00f3metro"
Есть ли способ, которым я могу-Экскейп это?json_encode не дает такой опции, utf8_encode, похоже, тоже не работает.
Edit Я вижу, что есть опция unescaped_unicode для json_encode.Однако это не работает, как ожидалось.Блин, это только на php 5.4.Мне придется использовать некоторые регулярные выражения, поскольку у меня есть только 5,3.
$json = json_encode($array, JSON_UNESCAPED_UNICODE);
Warning: json_encode() expects parameter 2 to be long, string ...