LR汉字编码转换的问题

上一篇 / 下一篇  2012-10-09 17:09:54

使用LR对网站进行性能测试的时候会遇到URL编码的问题。
表单对于发送参数中的汉字都会进行URL编码,如果出现网站的汉字和LR脚本中的汉字编码方式不同就会导致测试脚本发送的参数不正确。

之前在使用调试测试脚本的时候碰到这个问题。

"Name=title", "Value=唐僧", ENDITEM,

title中保存的汉字,在页面提交的时候会作为参数提交,手动操作时使用FireBug可以看到传送的参数为:&title=%E5%94%90%E5%83%A7 而从测试脚本日志中看到执行到该页面时提交的参数变成了:&title=%CC%C6%C9%AE
这2个地方提交的参数不同导致脚本执行不正确。

后面发现是本身汉字编码的不同导致生成的参数也不同,在测试脚本中汉字的编码是ACSII而网站中汉字的编码是UTR-8的形式。出现这样的问题我们就需要将title中的汉字编码转换我UTF-8的编码方式。

在LR中可以使用lr_convert_string_encoding()这个本身自带的函数对汉字的编码进行转换。解决的方案如下所示:

//将参数NewParam_2中保存的值转换为UTF-8的形式
lr_convert_string_encoding(lr_eval_string("{NewParam_2}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8 ,"title");

//因为使用上面的函数转换的时候会再字符串后面加上\x00,所以需要使用以下的代码将其去掉
lr_save_string(lr_eval_string("{title}"),"title");

//进行调用
"Name=title", "Value={title}", ENDITEM,





TAG:

 

评分:0

我来说两句

Open Toolbar