При разработке Android проблемы кодирования возникли при подключении с интерфейсом на стороне сервера. Данные, полученные с сервера, "/U8BBE/U59071ID-/U8BBE/U59071/U540D/U79F0;/U8BBE/U59073ID-/U8BBE/U59073/U540D/U79F0;/U8BBE/U5907ID-/U8BBE/U59077/U8BBE/U5907ID-/U8BBE/U5907777/U5907/U59077/U59077/U59077/u59077/u59077/u5907/u7907/u5907/u5907/u7907/u7907/u7907/u7907/u7907/u7907/u7907/u5907/u7407/u5907; Интерфейс возвращается после кодирования, а затем кодирует через json_encode в функции PHP. Он не работает на декодировании клиента через java.net.urldecoder.decode (), но его можно нормально декодировать путем копирования вышеуказанной строки в метод decode (). Полученная строка кодируется UTF-8 и не работает. Наконец, поиск соответствующей информации в Интернете, чтобы найти решение.
1. Функция json_encode:
JSON_ENCODE - JSON Кодирование переменных.
Описание: String json_encode ($ value), возвращает форму JSON значения .
Параметры: значение , которое нужно кодировать, может быть любым типом данных, за исключением типа ресурса
Эта функция может принять только кодированные данные UTF-8 (перевод Примечание: относится к данным типа символа/строки)
Возвращаемое значение: если кодировка успешна, будет возвращена строка, представленная в JSON.
2. Клиент декодирует на Java:
Первый метод
public String unescapeUnicode (String Str) {StringBuffer b = new StringBuffer (); Matcher m = pattern.compile ("//// u ([0-9a-fa-f] {4})"). Matcher (str); while (m.find ()) b.append ((char) integer.parseint (m.group (1), 16)); возврат b.toString (); }Просто используйте метод UnescapeUnicode (), чтобы декодировать его напрямую.
2. Используйте json_simple.jar Package to Parse
Адрес загрузки: //www.vevb.com/softs/4558855.html
Json.simple - это простая библиотека классов Java для анализа и генерации текста JSON. Это не зависит от других библиотек и имеет высокую производительность.
Объект obj = jsonvalue.parse (jsonstr); вернуть obj.tostring ();
PHP-серверное решение:
<html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = UTF-8"> <Title> PHP генерировать json китайский </title> <? Функция PHP ArrayRecursive (& $ array, $ function, $ Apply_keys_als = false) {static $ recursive_coun $ function = 0skeys_als = false) {static $ recursive_coun = 0skeys_alse = false) {static $ recursive_coun = 0skeys_lso = false) {static $ recursive_coun $. if (++ $ recursive_counter> 1000) {die ('возможная глубокая рекурсионная атака'); } foreach ($ array as $ key => $ value) {if (is_array ($ value)) {// arrayRecursive ($ array [$ key], $ function, $ apply_to_keys_also); } else {$ array [$ key] = $ function ($ value); } if ($ Apply_to_keys_also && is_string ($ key)) {$ new_key = $ function ($ key); if ($ new_key! = $ key) {$ array [$ new_key] = $ array [$ key]; unset ($ Array [$ Key]); }} $ recursive_counter--; } function json ($ array) {// arrayrecursive ($ array, 'urlencode', true); // print_r ($ array); $ json = json_encode ($ array); вернуть urldecode ($ json); } $ array = array ('name' => urlencode ('php генерирует json winking'), 'age' => 20); Echo Json ($ Array); echo '</br>'; echo urlencode ('php генерирует json китайский'); ?> </body> </html>