gpt4 book ai didi

python - pyodbc 返回由拉丁语替换的 unicode 符号

转载 作者:行者123 更新时间:2023-11-28 18:51:55 24 4
gpt4 key购买 nike

当使用 Python 和 pyodbc 连接到 Transbase 源代码时(连接字符串是正确的并且可以在其他应用程序中使用),我看到 ó、ű、é、á 等符号转换为 o、u、e , 一个.

但是如果我通过 ODBC 从 MS Access 连接到同一个源,这些符号就会正确显示。如果我从 pyodbc 连接到 MS Access(与 mdb 文件中的 Transbase 源链接),符号将正确显示。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\1.mdb;Persist Security Info=False

CHARSET=uft8 没有帮助

如何更改连接字符串或其他参数以正确显示这些符号?

最佳答案

您的问题中有一些变数使得很难给出好的答案。了解您正在查询的数据库使用的字符编码很重要。看来您的替换字符无法用等效的拉丁字符找到。

以与数据库相同的编码或具有 ó、ű、é、á 的相应字符的编码对查询的返回进行编码将是一个开始。所以:

query_result = cursor.execute(sql)
data = query_result[0].encode('utf8',errors='strict')

errors='strict' 如果在您选择的编码中找不到字符(上例中的 utf8),则会导致错误。这可能会帮助您找到数据库的正确编码。

从你得到的结果来看,你现在拥有的代码等同于:

data = query_result[0].encode('utf8',errors='replace')

它将用“合适的”替代品替换它找不到的字符。所以 ó 被替换为 "0"

关于python - pyodbc 返回由拉丁语替换的 unicode 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com