feedlyに日本語RSSを登録する際は小文字でURLエンコードさせよう

Author:

ここ1ヶ月くらいでしょうか。
feedlyにアメブロの検索結果RSSを登録していたのですが、それがうまく機能しなくなっていたのです。
あいまい検索になってしまっていたのですよね。
例えば「スマホ仮面」だと「スマホ or 仮面」で検索されているようで。

でもブラウザで実際のフィードを見るとちゃんと動いていて。
ちょっと調べてみることにしました。

知る人ぞ知るのですが、アメブロは検索結果をRSS配信しています。
http://search.ameba.jp/rss/検索文字列/
このURLにアクセスすると、アメブロの記事を検索した結果が格納されたRSSを取得できます。

試しに下記URLにアクセスすると、アメブロでスマホ仮面という文字列が入った記事を取得できます。
http://search.ameba.jp/rss/スマホ仮面/

が、これをfeedlyに入力してもなぜか実際のフィードと結果が違う事象。
昔は同じだったのですけどね。
おっかしいなあ。

feedlyresult

ここでエンジニア特有のバグ発見スキルが発動。
Nullの結果、と出ている以上アメーバ側に渡すリクエストがおかしいのでは無いか?と。
日本語URLのせいなのかもしれない。

って事でURLエンコードしてみる。
「スマホ仮面」を「%E3%82%B9%E3%83%9E%E3%83%9B%E4%BB%AE%E9%9D%A2」にしてみる。

やっぱり結果がおかしい。
Shift-JISエンコード?UTF-8エンコード?
色々試してみないと分からないかも。


そして色々試した結果、やっと正常な結果が返るパターンを確認。

feedlyresult2

「http://search.ameba.jp/rss/スマホ仮面/」
でも

「http://search.ameba.jp/rss/
%E3%82%B9%E3%83%9E%E3%83%9B%E4%BB%AE%E9%9D%A2/」
でもなく、

「http://search.ameba.jp/rss/
%e3%82%b9%e3%83%9e%e3%83%9b%e4%bb%ae%e9%9d%a2/」

が正解っぽい。
UTF-8で全部小文字にしないと駄目でした。

そういえば、確かツイッターAPIも小文字じゃないと返らなかった気がする。
先月PerlでツイッターAPI使った時、
http://search.twitter.com/search.json?q=日本語
をエンコードする際にURI::escape使ってエンコードしても結果が返らず、おっかしいなあと思って
小文字に変換したら結果返った記憶があるし。


なんかアメブロ側のバグにも見えるような気がしてきたけど、
feedlyに日本語URLを入力する時は小文字でURLエンコードさせたほうが良さそうですね。
適当にgoogleとかでURLエンコードと検索すれば変換してくれるサービスがそこら辺にありますので利用しましょう。

Facebook にシェア
Pocket