gpt4 book ai didi

unicode - Pyodbc utf-8 绑定(bind)参数错误 使用 FreeTDS 和 unixODBC

转载 作者:行者123 更新时间:2023-12-02 18:23:27 25 4
gpt4 key购买 nike

FreeTDS 版本 0.82

unixODBC 版本 2.3.0

pyodbc版本2.1.8

freetds.conf:

tds version = 7.0
client charset = UTF-8

在 odbc.ini 中使用 Servername(由于某些疯狂的原因,这对让 unixODBC 识别 freetds 中的客户端字符集产生了影响)

我能够正确提取 utf8 数据,并且可以使用内联字符串进行更新,即:

UPDATE table
SET col = N'私はトカイ大好き'
WHERE id = 182333369

但是

text = u'私はトカイ大好き'

cursor.execute("""
UPDATE table
SET column = ?
WHERE id = 182333369
""", text)

失败:

pyodbc.Error: ('HY004', '[HY004] [FreeTDS][SQL Server]
Invalid data type (0) (SQLBindParameter)')

如果我添加:

text = text.encode('utf-8')

我收到以下错误:

pyodbc.ProgrammingError: ('42000', '[42000] [FreeTDS][SQL Server]传入的表格数据流 (TDS) 协议(protocol)流不正确。流意外结束。(4002) (SQLExecDirectW)')

对于事情误入歧途的地方有什么想法吗?

最佳答案

在 pyodbc 3.0.x 中重新设计了 Unicode 支持。尝试使用最新的源代码(3.0.2-beta02等)进行测试

关于unicode - Pyodbc utf-8 绑定(bind)参数错误 使用 FreeTDS 和 unixODBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037420/

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