2014-01-16 101 views
0

我通過pyodbc連接到MS Access數據庫(mdb文件)。pyodbc + MS Access(*。mdb)+ UnicodeDecodeError

在這個數據庫中的一些數據有波蘭字符像(łóźćśę等)。 當我獲取一些數據時,polish字符被替換爲奇怪的字符(³,ê)。 我嘗試解碼爲utf8,cp1250,cp1252,latin1,latin2,但它不能解決我的問題(仍然是char不正確)。

任何人都可以幫助我嗎?

ps。現在我的解決方案是 data = data.replace('\xc2\xb3', 'ł')但它是醜陋的地獄。

回答

1

我有一個名爲[詞彙表]的表中的一些示例數據的.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外殼下面

żaglówka 

請注意.py文件第一行的文件編碼聲明。

相關問題