PHP和Java中相同的字符串不相等

时间:2013-05-08 14:00:53

标签: java php json encoding

当我从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编码。

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

2 个答案:

答案 0 :(得分:1)

如果长度不同,则由于前导/尾随空格可能存在差异。

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

答案 1 :(得分:0)

尝试

int ascii_code = jsonString.codePointAt(0)

看看你得到了什么