当我从PHP向Java(Android)发送字符串时,我遇到了一个奇怪的问题。
整个故事很简单: Java应用程序将关键字发送到PHP脚本。 PHP脚本在数据库中查找它,并将JSON编码的数组(作为字符串)发送回Java应用程序。
我可以在Android的TextView字段中看到此字符串,它看起来像这样:[{"name":"Berlin"}]
但是Java不接受这个作为有效的JSON字符串(不像一些在线JSON验证器),因为它不断抛出异常:“JSONArray文本必须以'['在字符1”开头。当我将这个字符串与使用“equal()”在Java中硬编码的相同字符串进行比较时,结果证明它们并不相等。更令人不安的是:Java将JSON字符串的长度返回为20,而不是19。
为什么会这样?没有像变形金刚这样的不寻常的角色。什么可能是第20个角色?我怀疑某些编码问题,但我很确定所有内容(PHP文件,Java文件)都是UTF-8编码。
(在有人询问之前:我可以提供代码,但我不知道哪个部分可能相关。)
答案 0 :(得分:1)
如果长度不同,则由于前导/尾随空格可能存在差异。
尝试查看this问题。接受的答案提供了一种预处理字符串的方法,以确保不会出现此问题。
答案 1 :(得分:0)
尝试
int ascii_code = jsonString.codePointAt(0)
看看你得到了什么