1
以下のPerlプログラムの入力にロシア語を入力して[送信]をクリックすると、ロシア語の文字の代わりにナンセンスが表示されます。HTTPパラメータをCP1251ページからUTF-8ハンドラに渡すにはどうすればいいですか?
CP1251としてエンコードされたページから、UTF-8文字列を必要とするハンドラスクリプトにデータを渡すにはどうすればよいですか? (以下のスクリプトは、このような状況の単純な例である。)
#!/usr/bin/perl
use strict;
use warnings;
use CGI qw/param/;
if (param('x')) {
print "Content-Type: text/plain; charset=utf-8\n\n";
print "[[".param('x')."]]";
} else {
print "Content-Type: text/html; charset=windows-1251\n\n";
print '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>';
print "<form><input name='x'/><input type='submit'/></form>";
}
'accept-charset'は良い考えのようです。 http://stackoverflow.com/a/3721098/1331451も参照してください。 – simbabque