51Testing软件测试论坛

标题: 遇上中文值发送出去变乱码的难题了,求大神看一下 [打印本页]

作者: abo298    时间: 2016-12-12 15:12
标题: 遇上中文值发送出去变乱码的难题了,求大神看一下
公司需要,于是用web(Click and Script)协议基于用户行为的方式录制了一个web脚本,录制选项的utf-8已勾选,但在回放时,页面里包含中文的下拉选择框,其值总会乱码传送,导致服务器无法识别,表单提交失败。
就这样的选择框:
[attach]103839[/attach]
下面是脚本里的代码:
[attach]103843[/attach]
回放后,通过浏览器查看到表单这些字段是乱码的:
[attach]103841[/attach]
这样的表单提交到数据库自然会被拒绝无法插入。
验证过问题并不是出在select的值乱码,回放脚本可以查找到页面中的下拉选择框并匹配到选择的中文值,事件没有报错,可最后发送到服务器的时候,这些中文就会变为乱码无法识别了,有大神遇见过类似问题可以给一点解决经验的吗?非常感谢~!
作者: xinyuzxx    时间: 2016-12-12 17:40
使用转换函数lr_convert_string_encoding将你要输入的汉字信息编号转化为服务器能识别的
作者: abo298    时间: 2016-12-13 09:51
xinyuzxx 发表于 2016-12-12 17:40
使用转换函数lr_convert_string_encoding将你要输入的汉字信息编号转化为服务器能识别的

尝试过没有用哦,这个函数是基于元素定位识别的,如果将中文转码后,首先直接会报错说该下拉框不存在这样的参数。
作者: jingzizx    时间: 2016-12-24 08:41
是不是要看看服务器编码,页面编码达成一致
作者: xinyuzxx    时间: 2017-2-7 09:30
abo298 发表于 2016-12-13 09:51
尝试过没有用哦,这个函数是基于元素定位识别的,如果将中文转码后,首先直接会报错说该下拉框不存在这样 ...

不知道你问题解决没,给你个我以前整的脚本
char tmp1[50];        
lr_convert_string_encoding( "测试",      
            LR_ENC_SYSTEM_LOCALE,              
            LR_ENC_UTF8,                              
            "ceshi" );  
strcpy(tmp1,lr_eval_string("{ceshi}"));        
lr_save_string(tmp1,"ceshi_utf8");

使用时用{ceshi_utf8}
作者: xinyuzxx    时间: 2017-2-7 09:34
我刚发那个是确定服务器端编码是UTF-8的,如果你的服务器端不是utf-8的编码就要在转换时注意进行更改




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2