FreeTDS + SQL Server 2012 + UTF-16LE

John Anderson <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <CAOdFaDUe4sKXxa10OJiD3sRMP+AZwJs2t6ECz4tU4_-tuHMsNQ@mail.gmail.com>
Hello!  I'm wondering if you had any tips on how to work with characters
larger than 0xFFFF?  We currently have the problem where we try to
insert/update a row in the database and it gets truncated at the character
and creates an invalid syntax:

For example this character:   \U0001f44d

We've tracked this down to the fact that FreeTDS is trying to convert this
to UCS-2 rather than UTF16-LE, which is what SQL Server 2012 uses.

For example if we say:

INSERT INTO table(name) VALUES(N' Hello \U0001f44d')

We get the error:

Unclosed quotation mark after the character string 'Hello ' because it
stops processing the rest of the query.

Is there a freetds.conf or environment setting we can use to tell it to use
UTF-16LE instead of UCS2 so that we can accept these larger character sets?

As a temporary solution we've started sending the raw UTF-16LE bytes to
FreeTDS but we prefer not having to do this.

Thanks,
John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.