標準入力($ENV{'QUERY_STRING'})から入ってきた文字列を、文字化けすることなく、フォント画像にすることはできますか?
どうしても日本語を「~~.cgi?text=あああ」のようにすると文字化けしてしまいます。
perlの文字コードは、Shift_JISです。
パラメータの文字も、Shift_JISです。
Image::magickが使えないので、お願いします。
添付画像は「あああ」です。
http://blog.clouder.jp/archives/000721.html
こちら参考にしたと思うのですが、後半、日本語の場合にperlの内部表現へとデコードする必要があると書かれています。また、以下の最後も参考に。
http://e8y.net/mag/012-imager/
用語解説として、flaggedなutf-8=utf8 フラグ付き=perlの内部表現、です。
以下も参考にしてください。
http://perl-users.jp/articles/advent-calendar/2009/casual/10.html
http://hikoboshi.org/perl/utf8.html
%E3%81%82%E3%81%82%E3%81%82
これは化けているんじゃなくて、URL encode されているんですね。
デコードするための CPAN もたくさんあるでしょう。
http://search.cpan.org/~mithun/URI-Encode-0.09/lib/URI/Encode.pm
http://search.cpan.org/~gaas/URI-1.60/URI/Escape.pm
導入できないのであれば、たいしたコードじゃないのでライブラリから抜いてくるか、こんな感じとか。
http://sonic64.com/2003-08-31.html
sub url_decode($) { my $str = shift; $str =~ tr/+/ /; $str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg; return $str; }
パラメータの文字も、Shift_JISです。
添付画像は UTF-8 のコードです。
Shift_JIS で扱いたいのであれば、文字コードの変換もしてください。