- 论坛徽章:
- 0
|
本帖最后由 pinkkyone 于 2015-11-03 16:24 编辑
因工作需要,使用Win32::IEAutomation打开某些网页并设置数据,然后提交,但在数据中含有unicode字符时,通过SetValue传送给网页的数据会变成乱码。
具体情况可简化为以下代码:
#!/usr/bin/perl
#use warnings;'
use utf8;
use Encode;
use File::Find;
use Win32::IEAutomation;
my $ie = Win32::IEAutomation->new( visible => 1, maximize => 1);
$ie->gotoURL("h\ttp\:\//w\ww\.baidu\.com/");
$ie->WaitforDone;
$string="黑莓도움말Coût mensuel";
#$string=encode(gbk,$string);
$ie->getTextBox('name:', "wd")->SetValue("$string");
操作系统为Windows XP,简体中文版,IE为IT8。
无论$string采用什么编码,通过SetValue传送给网页时,都会按gbk来解码,所以传送gbk不包含的字符时,就会变成乱码。
试过很多方法都无法解决,请教一下这是Win32::IEAutomation的问题吗?有可能解决吗?
(因不让发布URL,上面代码中的百度网址加了很多反斜线...) |
|