[英]pyodbc + MS Access(*.mdb) + UnicodeDecodeError
我通過pyodbc連接到MS Access數據庫(mdb文件)。
此數據庫中的某些數據具有波蘭字符,例如(łóźćśę等)。 當我獲取一些數據時,波蘭字符被奇怪的字符(³,ê)取代。 我嘗試將其解碼為utf8,cp1250,cp1252,latin1,latin2,但它不能解決我的問題(仍然是char不正確)。
誰能幫我?
PS。 現在,我的解決方案是data = data.replace('\\xc2\\xb3', 'ł')
但這很丑陋。
我在一個名為[vocabulary]的表中有一個.mdb文件,其中包含一些示例數據。 當我啟動Access並在數據表視圖中打開表時,它看起來像這樣:
ID word language english_equiv
-- -------- -------- -------------
5 żaglówka Polish sailboat
以下Python 2.7.5代碼
# -*- coding: utf-8 -*-
import pyodbc
db = pyodbc.connect(
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' +
r'DBQ=C:\__tmp\unicodeMdbTest.mdb')
cursor1 = db.execute('SELECT [word] FROM [vocabulary] WHERE [ID]=5')
while 1:
row = cursor1.fetchone()
if not row:
break
print row.word
db.close()
在IDLE shell中成功打印以下內容
żaglówka
請注意.py文件第一行上的文件編碼聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.