Perl - 从网页表单验证中文字符输入?

时间:2018-03-15 21:22:40

标签: perl utf-8

My Perl脚本接受并处理网页表单中文本字段的输入。它是为网页的英文版编写的,效果很好。

还有一个中文版的页面(一个单独的页面,而不是同一页面上的两种语言),现在我需要我的脚本来处理它。此页面上的用户输入应为中文。

期望需要在UTF-8中工作,我添加了

use utf8;

这在英文页面上继续正常运作。

但是为了例如定义一个用于比较的字符串变量,使用中文字符,我必须使用utf-8编码保存Perl脚本本身。一旦我这样做,我就会遇到可怕的500服务器错误。

显然,我正在解决这个问题,我们将非常感谢任何有用的方向/

感谢。

编辑 - 请参阅下面的澄清帖子。

2 个答案:

答案 0 :(得分:0)

正确处理utf8

use strict; use warnings;

use utf8;
use open(IO => ':encoding(utf8)');
binmode $_, ":utf8" for qw/STDOUT STDIN STDERR/;

open(my $fh, '<:utf8', '/file/path'); # if you need a file-handle

# code.....

检查

答案 1 :(得分:0)

对不起 - 我认为通过包含太多信息我很难表达我的问题。

问题是 - 如果我以ANSI格式保存我的脚本并将其上传到服务器,它对于英文页面来说效果很好。期望在脚本中使用中文字符,我将其保存为UTF-8格式并重新上传,突然间它会为英文页面抛出500.

我使用Hello World脚本进行了测试:

#!/usr/bin/perl -T
use strict;
use warnings;

print "Content-type: text/html\n\n";

print "Hello, world!\n";

保存为ANSI时工作正常 - 保存为UTF8时失败500。