Perl/HTML 파일을 UTF-8 형식으로 변경하려고했습니다. 불행히도 양식에 문제가 있습니다. 문제를 보여주는 간단한 테스트 스크립트를 만들었습니다. 모든 작업은 자체적으로 다시로드되므로 입력 한 텍스트가 다시 표시됩니다. 그것은 ASCII 문자로 잘 작동합니다. 독일어로 "Umlaute"(ÄÖÜ)를 입력하자마자 캐릭터가 왜곡됩니다. 러시아 문자 (ЭЯЮ)도 처리 할 수 없습니다. 다음은 스크립트입니다.Perl 및 HTML : UTF8이 양식에서 작동하지 않습니다.
#!/usr/bin/perl
use utf8;
use Encode;
use open ':std', ':encoding(UTF-8)';
# Safe query-string in hash:
$querystring = $ENV{ 'QUERY_STRING' };
read(STDIN, $poststring, $ENV{CONTENT_LENGTH});
if (($querystring ne "") && ($poststring ne "")) { $querystring .= "&$poststring"; }
else { $querystring .= $poststring; }
$querystring =~ s/&/=/gi;
%query = split(/=/, $querystring);
foreach $key (keys(%query)) {
$query{$key} =~ tr/+/ /;
$query{$key} =~ s/%([\da-f][\da-f])/chr(hex($1))/egi;
$uquer{$key} = decode_utf8($query{$key});
}
print "Content-Type: text/html; charset=\"UTF-8\"\n\n";
print <<END;
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">
</HEAD>
<BODY>
<FORM NAME="frmeing" METHOD="POST" ACTION="test0.cgi">
<INPUT NAME="df_kurs" TYPE="TEXT" VALUE="$uquer{'df_kurs'}">
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>
END
이 스크립트도 테스트 할 수 있습니다. 이 주소의 온라인 주소는 다음과 같습니다. http://project-website.org/test/test0.cgi 누가 문제가 될 수 있는지 알고 있습니까? 당신의 도움에 미리 감사드립니다!