簡體   English   中英

pyodbc + MS Access(*。mdb)+ UnicodeDecodeError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM