SSブログ

日本語を含んだURIのエンコーディングの自動予想 [software]

http://forum.mozilla.gr.jp/?mode=al2&namber=21337&rev=&&KLOG=133
にもあるように、FirefoxのあるバージョンではURIエスケープしていない生の日本語を含むリンク、またはアドレスバーからのURLの入力、または、サイトが用意したフォームのあるページの文字コードをわざわざ変えてリソースをGETしてきた場合などは、どの文字コードが用いられるか予想できません。

この場合は、


などを使うのが良いのでしょうか。日本語以外に対応しているのでしょうか。

Perl(Catalyst)でお手軽に以下のようにしてはまずい?


my $value = uri_unescape($c->req->param('key'));

Encode::_utf8_off($value);

if ( $c->req->header('accept-language') =~ /^ja/ ) {
    Encode::Guess->set_suspects(qw/euc-jp shiftjis 7bit-jis/);
}

my $enc = Encode::Guess->guess($value);
if ( ref($encoding) ) {
    $value = $enc->decode($value);
} else {
    eval { $value = Encode::decode_utf8($value, 1) };
    from_to($value, 'euc-jp', 'utf8', 1) if ($@);
  }
}


Plaggerでは、エンコードは、フィードやエントリ単位ですが、
http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Filter/GuessLanguage.pm?rev=1249
のようなコードが入っていますね。

題名とは関係ありませんが、久しぶりにPlaggerのコードを見るとすごいファイル数が増えてますね。CPANへの依存も多い分、動く(実績のある)SYNOPSISとして利用できそうです。

まるごとPerl! Vol.1

まるごとPerl! Vol.1

  • 作者: 川合 孝典, 水野 貴明, 小飼 弾, 宮川 達彦, 伊藤 直也
  • 出版社/メーカー: インプレスコミュニケーションズ
  • 発売日: 2006/08/24
  • メディア: 大型本

Perlの今がぎっしり詰まっています。


nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:旅行・地域(旧テーマ)

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1

未来のいつか本::ぶた ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。