Android開発では、サーバー側のインターフェイスに接続するときにエンコードの問題が発生しました。サーバーから取得したデータはです"/u8bbe/u59071id-/u8bbe/u59071/u540d/u79f0;/u8bbe/u59073id-/u8bbe/u59073/u540d/u79f0;/u8bbe/u59077777777777インターフェイスは、エンコード後に返され、PHP関数のjson_encodeを介してエンコードされます。 java.net.urldecoder.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)); return b.toString(); }unescapeunicode()メソッドを使用して、直接デコードしてください。
2。json_simple.jarパッケージを使用して解析します
アドレスをダウンロード://www.vevb.com/softs/455885.html
JSON.Simpleは、JSONテキストを解析および生成するためのシンプルなJavaクラスライブラリです。他のライブラリに依存せず、パフォーマンスが高くなっています。
オブジェクトobj = jsonvalue.parse(jsonst); return obj.tostring();
PHPサーバー側のソリューション:
<html> <head> <Meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> php generate json中国人</title> <?php function arrayrecursive(&$ array、$ function、$ function、$ apply_to_keys_also = fals = fals = satic $ recursive_counsive_couns 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中国人')、 'age' => 20); Echo JSON($ array); echo '</br>'; echo urlencode( 'phpはjson中国を生成します'); ?> </body> </html>