Perl 如何将HTTP参数从CP1251页传递到UTF-8处理程序?
当我在下面的Perl程序的输入中键入一个俄语单词并单击Submit时,我看到的是一个废话而不是俄语字母 如何将数据从编码为CP1251的页面传递到需要UTF-8字符串的处理程序脚本?(下面的脚本是这种情况的一个简单示例。)Perl 如何将HTTP参数从CP1251页传递到UTF-8处理程序?,perl,encoding,character-encoding,cgi,param,Perl,Encoding,Character Encoding,Cgi,Param,当我在下面的Perl程序的输入中键入一个俄语单词并单击Submit时,我看到的是一个废话而不是俄语字母 如何将数据从编码为CP1251的页面传递到需要UTF-8字符串的处理程序脚本?(下面的脚本是这种情况的一个简单示例。) #/usr/bin/perl 严格使用; 使用警告; 使用CGI qw/param/; if(参数('x')){ 打印“内容类型:文本/普通;字符集=utf-8\n\n”; 打印“[”.param('x').“]]”; }否则{ 打印“内容类型:text/html;字符集=w
#/usr/bin/perl
严格使用;
使用警告;
使用CGI qw/param/;
if(参数('x')){
打印“内容类型:文本/普通;字符集=utf-8\n\n”;
打印“[”.param('x').“]]”;
}否则{
打印“内容类型:text/html;字符集=windows-1251\n\n”;
打印“”;
打印“”;
}
我可以将param()
的值从CP1251转换为UTF-8,或者将accept charset='UTF-8'
属性添加到
元素。接受charset似乎是更好的主意。也看到
#!/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>";
}