51Testing软件测试论坛

标题: loadrunner通过动态链接mysql数据库,从数据库中查询出来的中文字段为乱码,如何解决? [打印本页]

作者: beata-chenli    时间: 2015-8-6 09:59
标题: loadrunner通过动态链接mysql数据库,从数据库中查询出来的中文字段为乱码,如何解决?
我通过函数进行动态链接数据库,sql语句很简单,其中MarketName为中文,运行脚本后,MarketName=‘???????’,求解,如果转换中文。   lrd_init(&InitInfo, DBTypeVersion);   
   //打开上下文   
   lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);   
   //申请连接的内存   
   lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 , 0);   
   //打开连接,注意DRIVER就是上面安装的   
   // lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "","", "DRIVER=MySQL ODBC 3. 51 Driver;UID=rootWD=123456;SERVER=192.168.1.99;DATABASE=TestDB", Ctx1, 1, 0);   
   lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "","", "DRIVER={MySQL ODBC 3.51 Driver};UID=rootWD=;SERVER=;DATABASE=t;", Ctx1, 1, 0);   

   //打开游标   
   lrd_open_cursor(&Csr1, Con1, 0);      
   //Sql语句,注意1代表的意思是,立马执行   
   lrd_stmt(Csr1,"SELECT a.`Id`,a.`MarketName`,a.`MarketId` FROM  TO_Org_Stock a WHERE a.`State`=1 AND a.`MarketId`='{UserMaketid}' AND a.`mnemonic`IS NOT NULL;", -1, 1, 0 , 0);



作者: jingzizx    时间: 2015-8-6 13:44
首先确认数据库中存在的中文不是乱码显示;
保持loadrunner编码格式与数据库编码格式一致;
或者使用函数进行编码转换lr_convert_string_encoding;
作者: beata-chenli    时间: 2015-8-6 14:58
jingzizx 发表于 2015-8-6 13:44
首先确认数据库中存在的中文不是乱码显示;
保持loadrunner编码格式与数据库编码格式一致;
或者使用函数 ...

运行脚本日志中显示:“MarketName=‘??????’”
所以使用lr_convert_string_encoding是转换不出来的,数据库中存在的中文是正确的,编码格式也都是utf-8,




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