Yummly API在JSON响应中返回奇怪字符(Android)



我使用html查询在我的Android应用程序中访问Yummly数据库中的食谱:

http://api.yummly.com/v1/api/recipes?_app_id=MY-APP-ID_app_key=MY-APP-KEY&q=KEYWORD

尽管他们的文档声明GET请求以UTF-8格式返回,但我在代码中发现了一些奇怪的字符,如:Pots de Creme a l’Orange .

这个问题不仅限于我的Android应用程序,而且在Chrome浏览器中也显示出同样的问题。有趣的是,当我尝试在Internet Explorer中打开它时,它似乎没问题:Pots de Creme a l’Orange,但还有其他东西,如crème fraĂ®che,在Chrome中有时显示为Crème Fraîche,有时正确显示为Crème Fraîche

浏览器之间的区别是什么,使得它们以不同的方式解释响应?更重要的是,如何在Android/Java中消除这个问题?你有什么主意吗?

在Android中,我使用HttpGet从服务器获取数据,然后我将其传递给JSONObject。

我为Yummly工作。我们处理这些事情的方式不一致,但现在应该解决了。

作为解释,&;语法是用于转义某些字符的SGML/XML/HTML实体。请看这里的例子。对于大多数浏览器的用户来说,文档是否包含&或者,amp;没有区别,所以我们在规范它们方面做得不够彻底。但对于像你这样的应用程序,显然它确实有所不同,我们已经添加了更彻底的标准化。你从API得到的所有东西都不应该是没有任何HTML实体的UTF8。

仅供参考,Apache Commons Lang有一个方便的Java实用程序来处理这类事情

最新更新