lilbox perl 版「anzubox」作成中

lilbox 置き換え用に perl で作り中だけれども、php とは拡張子が違うからそのまま使えず代替には使えない orz。
…もう自己満足の世界になっちゃってますけれども一応使えるようになりました。以下の右端トップでテスト中です。下に lilbox を設置し動作の違いを確認中。

自分で作ってみて初めて「lilbox」の完成度に驚くわー。デザインなんてよく考えられてるよ。


今回勉強したこと
文字コードUTF8のマルチバイト文字列の分割方法を調べた。amazon の商品名を表示する際に長い名前は省略したかったのがその理由。で、単純に substr でバイト単位に分割すると、分割の際がマルチバイトの場合真ん中から引きちぎられ文字列が壊れてしまうのです。そこで調べてみると、なんだかんだいっていろいろ探し回った結果、以下のサイトの記事が参考になった。方法は二通りあるようだ。

  1. Jcode.pm の jfold メソッドを使用する:【CGI・Perl】文字列を一文字ずつ分割する (全角・半角混合)
  2. 文字コードを判断してマルチバイトを処理する:Perlで文字列省略処理その2 - Favorite Labo

とりあえず Jcode.pm を試すと出力結果が文字化け。リンク先をよく読むと文末に《返却される文字コードEUCである点に注意》!とあったので修正したら動いたので、2. は試していません。*1

今後は地味にバージョンアップを進めて、他の人のアソシエイトIDが使えるように対応していきたいと思います。が、lilbox が止まるのは8月なので後回しになりそうだー。


関連:
amazon対応完了 / Digest::SHA の代わりに Digest::SHA::PurePerl を設置 - 14へ行け
amazon対応進捗 - 14へ行け

*1:それにしても欲しい情報がさくっと見つかるのはホントありがたいです。感謝。