2016-10-05 7 views
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>"; 
} 

答えて

1

Iは、UTF-8にCP1251からparam()の値を変換または<form>要素にaccept-charset='utf-8'属性を追加のエーテルができます。

+1

'accept-charset'は良い考えのようです。 http://stackoverflow.com/a/372​​1098/1331451も参照してください。 – simbabque

関連する問題