ODBC方法-解決數據庫返回中文亂碼問題
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”即添加成功
4.在使用RF查找數據庫返回值時,有時獲取的是中文,但在RF中識別出來是亂碼.
數據庫默認編碼不是Utf-8,需要人工轉換一下。DataBaseLibrary自身沒有提供轉換函數,為了解決這個問題,我們需要對DataBaseLibrary進行擴展。
1. 進入到安裝DataBaseLibrary的存放路徑,找到query.py
路徑每人不一樣,我是安裝的postgreSQL的API驅動,存放路徑是F:\Python27\Lib\site-packages\robotframework_databaselibrary-0.8.1-py2.7.egg\DatabaseLibrary
但有的人路徑就直接在site-packages/DatabaseLibrary下面。
2.打開query.py,在文件末尾加入如下decode解碼方法
def decode(self, code):
return code.decode('utf-8')
然后重新導入DatabaseLibrary庫。
在導入DatabaseLibrary庫的時候,需要多導入幾次,不然顯示紅色,無法成功導入。另外就是修改query.py代碼的時候,一定要把代碼對齊,仔細檢查!!!
3.在RF中調用decode,對返回結果進行解碼
保存代碼后,重新打開robot運行腳本發現查詢結果已經變成了中文。
【此處注意:sql查詢結果需為字符串類型,如結果為整行sql則轉碼依然會報錯。
例如:int類型不支持轉碼】
如以上代碼添加后,依然不顯示中文,可修改以上code為:
def decode(self,code):
test=code.encode('utf-8')
return test.decode('utf-8')
保存后,重新打開運行robot腳本,如依然不能解決亂碼問題,可參考另外一種解決方法:
鏈接地址:
http://blog.csdn.net/huashao0602/article/details/55045719