PHP Декодирование и кодировка JSON с символами Unicode

У меня есть какой-то JSON, мне нужно декодировать, изменять, а затем кодировать, не запутая любых персонажей.

Если у меня есть символ Unicode в json String, он не будет декодировать. Я не уверен, что, поскольку json.org говорит, что строка может содержать: любой-однокод-символ - кроме - «- или - \ - или-контроль-символ . Но это не работает в Python Либо.

{"Tag":"Odómetro"}

Я могу использовать UTF8_ENCODE, который позволит декодировать строку с JSON_DeCode, однако символ попадает в что-то другое. Это результат от печати_r массив результатов. Два символа.

[Tag] => Odómetro

Когда я кодирую Массив снова я сбежал в ASCII, что правильно в соответствии с SPECII json:

"Tag"=>"Od\u00f3metro"

Есть ли что-то, как я могу не избежать этого? json_encode не дает такой опции, utf8_encode тоже не работает.

Редактировать Я вижу, что есть вариант 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 ...
-121 -697788- Захват между интенсивными интенсивными интенсивными преобразованиями Перед нанесением У меня есть интенсивный сайт, который должен быть сделан вызовы веб-сервисов. Я передаю целое число как N Дополнительно с каждым намерением, который определяет тип вызова веб-сервиса. Я хотел бы создать ...

У меня есть интенсивный сайт, который должен быть сделан вызовы веб-сервисов. Я передаю целое число как дополнительный с каждым намерением, который определяет тип вызова веб-сервиса.

Я хотел бы создать ситуацию, когда, если намерение выполнить определенный веб-сервис, передается в IntentService, и намерение для того же веб-сервиса уже существует в очереди Intentservice, намерение не обрабатывается. В идеале я бы выбросил намерение, но я также мог добавить дополнительную к нему, что позволяет коду знать, чтобы пропустить намерение после того, как он обрабатывается. По мере того, как приходят намерение, я мог бы отслеживать, какие из них находятся в очереди в каком-то объекте, я добавляю в интенсивную услугу.

Однако я не вижу места, чтобы перехватить намерение правильно, когда оно передано в интенсивную услугу. Насколько я могу сказать, я могу только прикоснуться только к этому, когда на него называется, и это было бы слишком поздно.

Любые идеи?

6
задан Andrew 11 September 2011 в 23:11
поделиться