0

当我将字符串从 PHP 发送到 Java (Android) 时,我遇到了一个奇怪的问题。

整个故事相当简单:Java 应用程序向 PHP 脚本发送关键字。PHP 脚本在数据库中查找它并将 JSON 编码的数组(作为字符串)发送回 Java 应用程序。

我可以在 Android 的 TextView 字段中看到这个字符串,它看起来像这样:[{"name":"Berlin"}]

但是 Java 不接受这是一个有效的 JSON 字符串(与一些在线 JSON 验证器不同),因为它不断抛出异常:“A JSONArray 文本必须在字符 1 处以 '[' 开头”。当我使用“equal()”将此字符串与 Java 中硬编码的相同字符串进行比较时,结果发现它们并不相等。更令人不安的是:Java 返回 JSON 字符串的长度为 20,而不是 19。

为什么会这样?没有像元音变音符号这样不寻常的字符。第20个字符可能是什么?我怀疑一些编码问题,但我很确定一切(PHP 文件、Java 文件)都是 UTF-8 编码的。

(在有人问之前:我可以提供代码,但我不知道哪个部分可能相关。)

4

2 回答 2

1

如果长度不同,则可能会因前导/尾随空格而有所不同。

试着看看这个问题。接受的答案提供了一种预处理字符串的方法,以确保不会出现此问题。

于 2013-05-08T14:06:21.770 回答
0

尝试

int ascii_code = jsonString.codePointAt(0)

看看你得到了什么

于 2013-05-08T14:04:58.963 回答