nDiki
2004年2月3日 (火)
■ [WiKicker] WiKicker の文字化け対応

WiKicker の文字化けであるが Perl v5.6.x という環境が怪しそう。 ということで、ローカルに Perl v5.6.2 を入れてテスト。
tar zxvf perl-5.6.2.tar.gz cd perl-5.6.2 rm -f config.sh Policy.sh sh Configure -de -Dprefix=/usr/local/perl-5.6.2 make make test make install
で /usr/local/perl-5.6.2/bin/perl -MCPAN -e shell でもりもり必要なモジュールをインストール。
で WiKicker のテスト。化けた。 追いかけてみると、Locale::Maketext モジュールが use utf-8 をしているため、l10n した文字列は UTF-8 として mark されてしまっているようだ*1。 で、mark されていない他の部分の(バイト列としてのUTF-8)文字列と結合したりしたところで化けたと。
ということで、Perl v5.6.x では maketext で帰ってきた文字列の UTF-8 mark を外すようにする。
if (5.006 <= $] && $] < 5.7) {
return eval "no utf8; my \$tmp = \$language_handle->maketext(\@param); \$tmp =~ /^(.*)\$/; \$1";
}
という緊急処置コード。 Perl 5.0005_03 では utf8 プラグマ自体が無いので、eval の中に入れておく。 v5.6.x での UTF-8 mark の外し方が良くわからないので、とりあえず正規表現に全マッチさせるというダサいコード(v5.8 だと utf8::* にそこら辺の関数があるのだが)。
*1Perl 5.6.x では Perl v5.8.x のように "UTF8" flag という呼び名はないのかな?
- YAML Perl モジュール (2004-05-19)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- 野良パッケージと依存 Perl モジュールのインストールセット を CPAN::Mini::Inject で (2006-02-12)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN::Site で (2006-02-11)
- WiKicker の Makefile.PL を Module::Install ベースに (2006-02-10)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.19377s / load averages: 0.96, 1.00, 0.99
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)


◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox