如果上传文件包含UTF-8字符,则在提交html表单时CGI对象创建失败

时间:2014-05-12 07:15:09

标签: html perl utf-8 cgi

以下是html filecontent:

<form name="myForm" action="/cgi-bin/bulkurls.cgi" enctype="multipart/form-data" 
          method="post" >


    <td align="right">Bulk Provisioning File
    </td>
    <td align="left"><input name="user_list" type="file">
    </td>
  </tr>
  <tr>
    <td align="center" colspan="2"><input class="ButtonNormal150" name="upload"  type="submit" 
        value="Process File">

CGI脚本是:

use CGI;
use strict;

my $query = new CGI;

此时CGI对象创建失败只有文件包含UTF字符。如果是纯文本,它可以正常工作。这究竟是什么原因?

1 个答案:

答案 0 :(得分:0)

您可以尝试像这样设置utf8。还尝试使用最小的有效HTML页面进行测试。

HTML:

<html>
<body>
<form 
name="myForm" 
action="/cgi-bin/bulkurls.cgi" 
enctype="multipart/form-data" 
method="post" >
<input name="user_list" type="file">
<input class="ButtonNormal150" name="upload"  type="submit" value="Process File">
</form>
</body>
</html>

bulkurls.cgi:

use strict;
use warnings;
use utf8;
use CGI qw(-utf8);