في تطوير Android ، حدثت مشكلات الترميز عند الاتصال بواجهة جانب الخادم. البيانات التي تم الحصول عليها من الخادم "/u8bbe/u59071id-/u8bbe/u59071/u540d/u79f0 ؛/u8bbe/u59073id-/u8bbe/u59073/u540d/u79f0 ؛ يتم إرجاع الواجهة بعد الترميز ثم الترميز من خلال JSON_ENCODE في وظيفة PHP. لا يعمل على فك تشفير العميل من خلال java.net.urldecoder.decode () ، ولكن يمكن فك تشفيره بشكل طبيعي عن طريق نسخ السلسلة أعلاه إلى طريقة فك الشفرة (). يتم ترميز السلسلة المستلمة بواسطة UTF-8 ولا تعمل. أخيرًا ، البحث عن المعلومات ذات الصلة عبر الإنترنت للعثور على حل.
1. وظيفة json_encode:
JSON_ENCODE - ترميز JSON للمتغيرات.
الوصف: String JSON_ENCODE (قيمة $) ، إرجاع نموذج JSON من قيمة القيمة .
المعلمات: يمكن أن تكون القيمة الواجب ترميزها أي نوع بيانات باستثناء نوع المورد
يمكن أن تقبل هذه الوظيفة فقط بيانات UTF-8 المشفرة (ملاحظة الترجمة: تشير إلى بيانات نوع الحرف/السلسلة)
قيمة الإرجاع: إذا كان الترميز ناجحًا ، فسيتم إرجاع سلسلة ممثلة في JSON.
2. يفكّر العميل في جافا:
الطريقة الأولى
السلسلة العامة unescapeunicode (String str) {StringBuffer B = new StringBuffer () ؛ matcher m = pattern.compile ("//// u ([0-9a-fa-f] {4})"). matcher (str) ؛ بينما (M.Find ()) B.Append ((char) integer.parseint (M.Group (1) ، 16)) ؛ إرجاع B.ToString () ؛ }فقط استخدم طريقة unescapeunicode () لفك تشفيرها مباشرة.
2. استخدم حزمة json_simple.jar لتحليلها
تنزيل عنوان: //www.vevb.com/softs/455885.html
JSON.Simple هي مكتبة فئة Java بسيطة لتحليل وإنشاء نص JSON. لا يعتمد على المكتبات الأخرى وله أداء عالي.
Object obj = jsonvalue.parse (jsonstr) ؛ return obj.toString () ؛
حل جانب خادم PHP:
<html> <head> <meta http-equiv = "content-type" content = "text/html ؛ charset = utf-8"> <title> php إنشاء json inchank </title> <؟ php function arrayRecursive (& $ array ، $ function ، $ applicys_also = false) if (++ $ Recursive_Counter> 1000) {die ('age ongure recursion الممكنة') ؛ } foreach ($ array as $ key => $ value) {if (is_array ($ value)) {// ArrayRecursive ($ array [$ key] ، $ function ، $ application_to_keys_also) ؛ } آخر {$ array [$ key] = $ function ($ value) ؛ } if ($ application_to_keys_also && is_string ($ key)) {$ new_key = $ function ($ key) ؛ if ($ new_key! = $ key) {$ array [$ new_key] = $ array [$ key] ؛ unset ($ array [$ key]) ؛ }} $ recursive_counter-- ؛ } وظيفة json ($ array) {// arrayRecursive ($ array ، 'urlencode' ، true) ؛ // print_r ($ array) ؛ $ json = json_encode ($ array) ؛ إرجاع urldecode ($ json) ؛ } $ array = array ('name' => urlencode ('PHP يولد JSON الصيني') ، 'Age' => 20) ؛ ECHO JSON ($ ARRAY) ؛ Echo '</br>' ؛ echo urlencode ('php يولد Json الصينية') ؛ ؟> </body> </html>