「Amazonおまかせリンク」でどんな商品が出てくるかテスト。
「Amazonおまかせリンク」でどんな商品が出てくるかテスト。
先日Movable Typeを3.33-jaに上げたらGoogle Search バージョン 1.0なんてのがデフォルトのプラグインに追加されていたので試しに有効にしてみました。
以前、MT3.2にバージョンアップした際に発生した、MovableTypeのプラグインaws.plが生成するAmazon.co.jp商品情報の文字化けが再発してしまいました。
前回の「aws.pl@MovableType3.2で文字化け」、「MT3.2での文字化け修正版aws.pl」、あたりでやったことを思い出しながら、試行錯誤すること数時間。
「JcodeでもEncodeでもダメならそうすりゃいいってのよ!」と一度はさじを投げかけましたが、同様のプラグインであるMT-MyAmazonList v1.00のソースを眺めたりした結果、無事問題を解決することができました。
結論から言うと、Encode.pmやJcode.pmではなく、MTが提供するMT::I18Nを使えばいいようです。
例によって以下に修正したソースコードを載せておきますが、MT-MyAmazonList使えばいいんじゃねぇかという気が沸々と湧いてきたのでした。
昨日開始されたMovable Type 3.3日本語版ベータ(3.3b1-ja)に早速アップグレードしてみたのでそのテスト投稿です。
昨年10月にMovableType3.2にアップグレードしたらaws.plの出力が文字化けして困った際に参考にしたサイトがなくなってしまったようなので、修正版aws.plを上げておきます。
DVDの監督情報なども取得できるように文字化け問題とは関係の無いカスタマイズも行っていますので、必要の無い人は該当部分を削除した方が再構築時などのレスポンスがよくなるかと思います。
2006年1月1日にはうるう秒が実施され、9時0分0秒の前に8時59分60秒がはさまれるわけですが、
Movable Typeにはうるう秒による影響は無いというアナウンスが出されました。
「影響は無い」って、8時59分60秒の投稿ができるのかしらと思い指定日投稿しようとしてみると・・・
日付 (2006-01-01 08:59:60) が正しくありません。存在しない日付が設定されています。
って怒られてしまいました。
残念。
Movable Typeユーザーの皆様 Movable Typeではすべてのバージョンにおいて、うるう秒による影響はありませんので、ご安心ください。また、年末ギリギリの告知になってしまったことを深くお詫びいたします。
昨晩、散財予定リストに新しいアイテムを追加したところ、aws.plによる商品情報部分だけなんか激しく文字化けするようになってしまいました。 title=""の中身などHTML elementもaws.plで取得した情報を入れていたので、文字化けするとダブルクウォーテーション文字が死んだしりしてページ全体にまで悪影響が出る始末で、見苦しいし何とかしたかったのですが夜も遅かったのでとりあえずは放置したのでした。
今日になって調べてみたところ、どうやらMovableType3.2だとUTF-8周りの処理をちゃんと行わないaws.pl等のプラグインは文字化けするという情報に行き着きました。 そちらのサイトから修正版のaws.plをダウンロードして上書きしたところ、無事解決。 文字コード処理モジュールもJcodeからEncodeに置き換えられていていい感じです。
MT-3.2にバージョンアップして発生していたaws.plの文字化けですが、暇を見て調べていたら、こちらのblogにて不具合を修正したaws.plが公開されていました。
他のサイトで書かれている修正をしてもtypeをheavyにしていろんなデータを取得したり、MTAwsタグの中に日本語の文字列を入れたりするととたんに文字化けするので、Perlはど素人なのですがわからないなりに追ってみました。
どうもUTF8フラグまわりの処理が抜けていたようです。 Jcodeモジュールでも修正できるのですけど、せっかくなのでEncodeモジュールを使ってUTF8フラグを正しく扱うように修正してみました。