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

时间:2013-03-26 18:01:00

标签: java android json httpresponse http-get

我使用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。

1 个答案:

答案 0 :(得分:0)

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

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

仅供参考,Apache Commons Lang有一个方便的Java实用程序用于此类事情