0

我将一些 SQL 结果从 PHP 返回到 android。

我将 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。

并且Content-Type应该仅application/json用于 json 输出。

于 2012-11-14T22:54:06.210 回答