最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
linux中pypyodbc读取GB编码mdb中文乱码解决办法
时间:2022-06-25 18:19:45 编辑:袖梨 来源:一聚教程网
当前1.3.3版本的pypyodbc在linux系统上面已经可以读取有中文字符的mdb文件,不再出现异常,但是读取的中文字符却全是乱码。
下面是根据一些现象的合理推论:
mdb文件来自于windows系统,其中的中文字符使用GB编码无疑,但linux系统上mdbtools提供的odbc驱动底层已经执行了编码转换,将GB码转换为unicode码,pypyodbc再一次进行转换所以出现了问题。
pypyodbc.connect函数有一个参数unicode_results,在python3版本上默认为True,也就是返回unicode编码的结果集。
odbc底层驱动转换一次编码,pypyodbc再转换一次,悲剧不可避免的出现了。
因此设定connect函数的unicode_results为False,也就是原样返回结果集,然后结果集中的字段名和字段值都需要解码为unicode字符串:
$ python3
>>> conn=pypyodbc.connect('Driver=MDBTools;DBQ=/path/to/Record.mdb', unicode_results=False)
>>> conn.cursor().execute('SELECT * FROM Build').fetchone()[0].decode('UTF-8')
decode(‘UTF-8′)解码成功,说明mdbtools的odbc驱动返回的结果集已经是unicode编码格式。
相关文章
- 《迷雾之舟》特色玩法内容说明-多重玩法《迷雾之舟》玩法大解析 08-08
- 合欢宗女修传新月密码-合欢宗女修传密码和钥匙怎么拿 08-08
- 崩坏星穹铁道开拓者的卧室成就怎么达成-崩坏星穹铁道开拓者的卧室成就怎么做 08-08
- 永恒天空怎么收集物资 永恒天空物资储存攻略 08-08
- 黑神话悟空梅山地图进入方法-黑神话悟空梅山地图怎么进 08-08
- 无限暖暖能联机吗-无限暖暖联机攻略 08-08