pyodbc 在版本 3+ 上是否存在编码问题?
Does pyodbc have encoding issues on version 3+?
...还是只有我?我阅读了第 2 版已解决的编码问题——我认为这是相关的。我在 MSSQL 服务器上没有问题,只有我们最新的 TeraData 服务器。
python==3.4.3
pyodbc==3.0.10
其他帖子建议我在 connect() 中尝试 'CHARSET=UTF8;ENCODING=UTF8' 的组合。这些在我的 DSN 中,但没有产生可察觉的差异。
cnxn = pyodbc.connect("DSN={TeraData};")
cursor = cnxn.cursor()
cursor.tables()
rows = cursor.fetchall()
In [28]: rows[0].table_name, rows[0].table_name.encode('utf_16_le')
Out[28]: ('扣件陪獐獍獍祳汤', b'AbortListSession')
pyodbc 4.x 显着改进了 Unicode 处理。版本 4.0.7 包含针对 Teradata 的特定修复。如果可能的话,您应该使用最新版本(在撰写此答案时当前为 4.0.26)。
...还是只有我?我阅读了第 2 版已解决的编码问题——我认为这是相关的。我在 MSSQL 服务器上没有问题,只有我们最新的 TeraData 服务器。
python==3.4.3 pyodbc==3.0.10
其他帖子建议我在 connect() 中尝试 'CHARSET=UTF8;ENCODING=UTF8' 的组合。这些在我的 DSN 中,但没有产生可察觉的差异。
cnxn = pyodbc.connect("DSN={TeraData};")
cursor = cnxn.cursor()
cursor.tables()
rows = cursor.fetchall()
In [28]: rows[0].table_name, rows[0].table_name.encode('utf_16_le')
Out[28]: ('扣件陪獐獍獍祳汤', b'AbortListSession')
pyodbc 4.x 显着改进了 Unicode 处理。版本 4.0.7 包含针对 Teradata 的特定修复。如果可能的话,您应该使用最新版本(在撰写此答案时当前为 4.0.26)。