【问题标题】:FREETDS and UNIXODBC character convertingFREETDS 和 UNIXODBC 字符转换
【发布时间】:2011-02-24 18:07:16
【问题描述】:

我有一个错误要修复。它的:

[FreeTDS][SQL Server]Error converting characters into server's character set. Some character(s) could not be converted

当我使用土耳其语字符插入时,我得到了这个错误。我的问题是如何禁用转换的东西?我通过 freetds 和 unixodbc 连接到 sql server。

谢谢..

【问题讨论】:

    标签: sql-server linux debian freetds unixodbc


    【解决方案1】:

    你需要设置

    client charset = UTF-8
    

    在您的 freetds.conf 文件中并通过将 Servername 选项设置为 freetds.com 中的连接定义从 odbc.ini 读取它。见this explanation 和我的blog post。

    【讨论】:

    • 谢谢!我花了好几个小时来解决一个类似的问题。谁会知道 freetds.conf 全局部分中的客户端字符集被忽略了。
    • 请注意,TDS 8.0 的正确设置是“clientcharset = UTF-8” - 没有空格。如果我知道这一点,我会安全地搜索几个小时......
    【解决方案2】:

    在python3中,你需要在你的conn之后添加两行

    import pyodbc as db # forgot the imports
    conn = pyodbc.connect(driver=driver, server=serv, database=db,port = prt,
                      uid=usr, pwd=passwd)
    conn.setdecoding(db.SQL_CHAR, encoding='latin1')
    conn.setencoding('latin1')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      相关资源
      最近更新 更多