【问题标题】:pyodbc + MS Access(*.mdb) + UnicodeDecodeErrorpyodbc + MS Access(*.mdb) + UnicodeDecodeError
【发布时间】:2014-01-16 09:54:39
【问题描述】:

我通过 pyodbc 连接到 MS Access 数据库(mdb 文件)。

此数据库中的一些数据具有波兰字符,如(łóźćśę 等)。 当我获取一些数据时,波兰语字符被奇怪的字符(³,ê)替换。 我尝试解码为 utf8、cp1250、cp1252、latin1、latin2,但它不能解决我的问题(仍然 char 不正确)。

谁能帮帮我?

ps。现在我的解决方案是 data = data.replace('\xc2\xb3', 'ł') 但丑得要命。

【问题讨论】:

    标签: python ms-access unicode pyodbc


    【解决方案1】:

    我有一个 .mdb 文件,其中包含一个名为 [vocabulary] 的表中的一些示例数据。当我启动 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 文件第一行的文件编码声明。

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多