当前位置: 代码迷 >> CGI >> Perl CGI程序汉字编解码有关问题
  详细解决方案

Perl CGI程序汉字编解码有关问题

热度:806   发布时间:2012-03-02 14:40:29.0
Perl CGI程序汉字编解码问题,请教高手
我本来做C++的,帮朋友做作业,刚开始学perl,现在遇到个问题,卡在这里,不知道该咋办,请高手指教啊。

我的表单是这样提交的
<form name="formlogin" id="formlogin" action="cgi-bin/helloworld.pl" method="post">
  用户名:
  <input class="textinput" id="idnum" name="idnum" type="text" />
  <input class="btn3_mouseout" onMouseOver="this.className='btn3_mouseover'"
onMouseOut="this.className='btn3_mouseout'" onMouseDown=
"this.className='btn3_mousedown'" onMouseUp="this.className='btn3_mouseup'" name="提交" type="submit" value="登录" />
<input class="btn3_mouseout" onMouseOver="this.className='btn3_mouseover'" onMouseOut="this.className='btn3_mouseout'" onMouseDown="this.className='btn3_mousedown'" onMouseUp="this.className='btn3_mouseup'" name="" type="button" value="管理" onclick="showMsgBox(event);" />
</form>

英文和数字提交没问题,但是中文提交,比如说,输入“中国”,perl CGI脚本中得到的是idnum=%D6%D0%B9%FA&%CC%E1%BD%BB=%B5%C7%C2%BC,也就是说,汉字被编码成了 %D6%D0%B9%FA,网上查了一下,是GBK编码,怎么样解码以后可以存在Excel中呢?
可能可以用Encode来解决,我用了encode和decode,问题是怎么送参数呢 ,encode("gbk",**)或decode("gbk",**)第二个参数是什么呢?直接送0xD6D0,或者送"%D6%D0"等都不行。。。

谢谢大家~~~~~~~~~~~~~

------解决方案--------------------
帮顶~