我使用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。
答案 0 :(得分:0)
我为Yummly工作。我们处理这些事情的方式不一致,但现在应该修复。
作为解释,&amp ;;语法是SGML / XML / HTML实体,用于转义某些字符。例如,请参阅here。对于大多数浏览器的用户,该文档是否包含&或者& amp;没有区别,所以我们在规范它们方面不够彻底。但对于像你这样的应用程序,显然它确实有所作为,我们已经添加了更彻底的规范化。您从API获得的所有内容都不应该是没有任何HTML实体的UTF8。
仅供参考,Apache Commons Lang有一个方便的Java实用程序用于此类事情