10

ive got an error to fix. its:

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

when i use turkish characters to insert i get this error. my question is how can i disable that converting thing? im connecting to sql server via freetds and unixodbc.

thanks..

Ali Demirci
  • 5,302
  • 7
  • 39
  • 66

2 Answers2

9

You need to set

clientcharset = UTF-8

in your freetds.conf file and read it from odbc.ini by setting the Servername option to the connection definition in freetds.com. See this explanation and my blog post.

Mr Smith
  • 3,318
  • 9
  • 47
  • 85
dirkb
  • 403
  • 3
  • 6
  • Thankyou! It has taken me many hours to resolve a similar issue. Who would have known that the client charset in the global section of freetds.conf was ignored. – Steve Weet Mar 23 '11 at 08:12
  • 4
    Please note, that proper setting for TDS 8.0 is "clientcharset = UTF-8" - without whitespace. If I have known that, I would safe hours of searching... – Daniel.P. Dec 17 '15 at 16:16
2

in python3, you need to add two lines after your 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')
Stella Fredo
  • 81
  • 1
  • 2