外出先でも携帯を通してasahi.com 等のPC向けのニュースサイトで見たいので、LWP モジュールを使ってサーバ上でそれらサイトのHTMLを取得・解析して内容だけを抽出するCGIスクリプトを組んで活用しています。そのCGIのおかげで有料の携帯向けサービスを利用せずにすんでおり、お小遣いの節約になってます。
で。そのCGIの中に、記事に関する画像があればImage::Magickを使ってサイズと解像度を落としてから表示する、という携帯のパケット代を考慮した機能を持たせているのですが、以前の携帯P901iSで見れていたそれらの画像が現在のSH902iSで見れなくなっていたのでその原因を調査。(1年以上ほったらかしにしてました…笑)
すると、以下のような感じで呼んでいる画像操作の処理がそもそも動いていない模様。
<img src="./xxx.cgi?mode=image&url=http://xxx.com/xxx.jpg">
あ!よく見るとURLエンコードし忘れてるような…これが原因か?と思い、以下のように正しくエンコードをかけると上手く動くようになりました。
<img src="./xxx.cgi?mode=image&url=http%3a%2f%2fxxx.com%2fxxx%2ejpg">
P901iSのブラウザでは内部で勝手にエンコードしてくれてたようですがSH902iSではそこまでやってくれないのね。iモードブラウザのバージョンにより一度に表示できるページサイズの違いなどがあることは知ってましたが、機種によってエンコードの判定の違いがあったなんてはじめて知りました。
以後気をつけます。