John Anderson
2014-08-29 16:50:20 UTC
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
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