2016-10-05 6 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

난 UTF-8에서 CP1251 param() 값을 변환하거나 <form> 소자 accept-charset='utf-8' 속성 에테르를 추가 할 수있다.

+1

'accept-charset'은 더 좋은 아이디어 같습니다. http://stackoverflow.com/a/3721098/1331451을 참조하십시오. – simbabque