0

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で開こうとすると、問題ないように見えました。しかし、Chromeでは、とPots de Creme a l’Orange同じように表示されることもあれば、正しく表示されることもあります。crème fraĂ®cheCrème FraîcheCrème Fraîche

応答をさまざまな方法で解釈させるブラウザの違いは何ですか?そして、さらに重要なことに、この問題を解消するためにAndroid / Javaで何ができるでしょうか?あなたはなにか考えはありますか?

Androidでは、HttpGetを使用してサーバーからデータをフェッチし、それをJSONObjectに渡します。

4

1 に答える 1

0

私はYummlyで働いています。これらの処理方法に一貫性がありませんでしたが、今すぐ修正する必要があります。

説明として、&; 構文は、特定の文字をエスケープするために使用されるSGML / XML/HTMLエンティティです。たとえば、ここを参照してください。ほとんどのブラウザのユーザーの場合、ドキュメントに&または&が含まれているかどうか 違いはないので、それらを正規化するのに十分ではありませんでした。しかし、あなたのようなアプリの場合、明らかに違いがあり、より完全な正規化が追加されています。APIから取得するものはすべて、HTMLエンティティがないUTF8であってはなりません。

参考までに、Apache Commons Langには、この種の便利なJavaユーティリティがあります。

于 2013-03-28T17:54:50.887 に答える