Perl CGI.pm编码 - “ě”的编码错误

时间:2012-01-25 11:44:34

标签: perl encoding utf-8 cgi

我有一个使用CGI.pm的简单网页。这就是我所做的:

  1. 当我调用任何perl CGI.pm函数并使用捷克字符“ě”作为textfield的值,radio_group的标签或其他任何我得到的 > insetad“ě”

  2. 这非常奇怪 - 因为整个页面是utf8(< meta name =“charset”content =“utf-8”/>)。特别是因为这是有效的

      print '<textfield value="ěěěě" >';
    
  3. 因此我很肯定 - 它必须是CGI.pm导致问题...我试图把

      use utf8;
      utf8::decode($textfield_value);
    

    在我的scirpt开始时它修复了CGI.pm问题但是使脚本中的所有其他字符(那些经常打印的)看起来很有趣..

  4. 任何想法???

2 个答案:

答案 0 :(得分:1)

将表单字段中的accept-charset属性设置为UTF-8

<form action="/..." accept-charset="UTF-8">

这可能不足以解决您的问题,但通常需要强制客户端浏览器对发送到服务器的表单数据进行utf8编码。

答案 1 :(得分:0)

您是否尝试用八角形或十六进制转换替换ě?不幸的是,这个角色似乎没有HTML代码。