当我将字符串从 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 编码的。
(在有人问之前:我可以提供代码,但我不知道哪个部分可能相关。)