0

PHP から Android に SQL の結果を返しています。

JSON 応答を次のようにエンコードします。

$json_string = json_encode($rows);
$json_string = str_replace("\\", "", $json_string, $i);
return $json_string;

これをAndroidにエコーバックすると、JSONバリデーターに配置すると有効なJSONコードを提供する文字列が得られます。

ただし....この有効な文字列を新しい JSONObject または JSONArray に渡そうとすると、変換できないというエラーが表示されます。

これは、空白の目に見えない文字が原因であると確信しています。

Javaで以下を使用して、PHPとJavaの両方をutf-8文字セットでエンコードしました...

BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "utf-8"), 8);

そしてPHPの場合...

header('Content-Type: text/html; charset=utf-8');

しかし、これは問題を解決していません。

どんな助けでも大歓迎です。

4

1 に答える 1

4

これは、有効な json 表現を次のように操作するためです。

$json_string = str_replace("\\", "", $json_string, $i);

そうしないでください。json_encode は既に有効な json を生成しています。

そして、json出力のみを対象とするContent-Type必要があります。application/json

于 2012-11-14T22:54:06.210 に答える