gpt4 book ai didi

python - pyodbc 是如何确定编码的?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:02 25 4
gpt4 key购买 nike

到目前为止,我已经将 Sybase SQL Anywhere 12 与 Python(和 Twisted)一起使用了几个星期,我什至可以正常工作。

只剩下一个烦恼:如果我使用自定义 Python 2.7.1(这是部署平台)在 CentOS 5 上运行我的脚本,我得到的结果是 UTF-8

如果我在我的 Ubuntu 盒子 (Natty Narwhal) 上运行它,我会在 latin1 中获取它们。

不用说,我更愿意用 Unicode 获取所有数据,但这不是这个问题的重点。 :)

两者都是 64 位盒子,都有自定义的 Python 2.7.1。使用 UCS4 和自定义构建的 unixODBC 2.3.0。

我在这里不知所措。我找不到任何相关文件。是什么让 pyodbc 或 unixODBC 在这两个盒子上表现不同?

确凿的事实:

  • python :2.7.1
  • 数据库:SQL Anywhere 12
  • unixODBC:2.3.0(2.2.14 的行为相同),使用相同的标志自行编译
  • ODBC驱动:原装Sybase。
  • CentOS 5 给我 UTF-8,Ubuntu Natty Narwhal 给我 latin1。

我的 odbc.ini 看起来像这样:

[sybase]
Uid = user
Pwd = password
Driver = /opt/sqlanywhere/lib64/libdbodbc12_r.so
Threading = True
ServerName = dbname
CommLinks = tcpip(host=the-host;DoBroadcast=None)

我只是通过使用 DNS='sybase' 进行连接。

TIA!

最佳答案

我无法告诉您为什么不同,但如果您将“Charset=utf-8”添加到您的 DSN,您应该会在两台机器上获得您想要的结果。

免责声明:我在 Sybase 从事 SQL Anywhere 工程工作。

关于python - pyodbc 是如何确定编码的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884504/

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