解决Robot Framework查询sql乱码问题

本文介绍如何解决RobotFramework查询数据库出现乱码的问题。通过安装pyodbc并配置ODBC数据源,再对查询结果进行UTF-8解码,最终实现正确显示中文字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决robot Framework直接查询数据库显示的是???,这里用到odbc连接mysql
1.先安装pyodbc,通过pip install pyodbc
2.pyodbc连接mysql,需要windows工具mysql connector,下载对应版本的.msi文件后,直接安装
3.安装完成后,需要配置ODBC数据源
(1)安装完成mysql-connector-odbc-5.1.8-winx64.msi文件后
(2)打开控制面板 > 管理工具 > ODBC数据源(64/32)根据对应选择
(3)点击添加,打开创建数据源选择弹框,选择Mysql ODBC 5.1 driver,点击“完成”
(4)弹出mysql代理地址填写框,填写对应ip、user,pass后,点击“OK”即添加成功
连接语句:
Connect To Database Using Custom Params    pyodbc    "Driver={MySQL ODBC 5.1 Driver};Server=10.10.72.199;Port=3306;Database=crm;User=root;"
4.复制以上链接语句到robot脚本中,添加sql语句运行脚本后,查询结果显示ASCII码
5.此时,进入DataBaseLibrary的存放路径,找到query.py文件
示例路径:C:\Python27\Lib\site-packages/DatabaseLibrary\query.py
6.用编辑器打开query.py文件,在文件尾部添加转码代码:
    def decode(self,code):
        return code.decode('utf-8')


保存代码后,重新打开robot运行脚本发现查询结果已经变成了中文
【此处注意:sql查询结果需为字符串类型,如结果为整行sql则转码依然会报错。
例如:int类型不支持转码】


如以上代码添加后,依然不显示中文,可修改以上code为:
def decode(self,code):
        test=code.encode('utf-8')
        return test.decode('utf-8')
保存后,重新打开运行robot脚本,如依然不能解决乱码问题,可参考另外一种解决方法:


链接地址:
http://blog.youkuaiyun.com/huashao0602/article/details/55045719

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值