[freetds] Freetds and Unicode

Hugo Freire hfreire at abajar.com
Tue Oct 20 13:25:04 EDT 2015


After investigating a little we have detected that data stored in 
nvarchar field in sql server 2008 is in UTF-16LE, but FreeTDS uses 
UCS-2LE to get the data, then freetds raises an exception because 
UCS-2LE only supports 2 bytes chars, and data stored has 4 bytes.

echo -ne '𫠝'| iconv -t utf-16le| hexdump -C

works, but

echo -ne '𫠝'| iconv -t UCS-2LE hexdump -C

raises "iconv: illegal input sequence at position 0" because this char is not in UCS-2LE.

Are there any way to force to use UTF-16LE for the server charset?



El 10/8/2015 a las 4:11 PM, Hugo Freire escribió:
> I'm testing it with last stable version freetds-0.95.20.
>
> Thanks,
> Hugo
>
> El 10/8/2015 a las 2:29 PM, Igor Korot escribió:
>> Hi,
>>
>> On Thu, Oct 8, 2015 at 6:36 AM, Hugo Freire <hfreire at abajar.com> wrote:
>>> Hi,
>>>
>>> I'm using Freetds from 4 years ago and works perfectly. Now we are 
>>> trying to
>>> allow to store Unicode characters in sql server.
>> Can you try the latest release? At least for testing purposes.
>> 4 years ago binary is outdated.
>>
>> Thank you.
>>
>>> We have detected that we can store without problems any character 
>>> from first
>>> plane of Basic Multilingual Plane
>>> https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane, 
>>> but
>>> not able to store any character from other planes.
>>> In the Freetds documentation I can read "At some future time, 
>>> FreeTDS aims
>>> to support Unicode and other multi-byte character sets."
>>> After making some tests, we was able to store all Unicode characters 
>>> using
>>> "client charset ISO-8859-1".
>>> Unfortunately we have an heterogeneous platform with windows and linux
>>> systems connecting to the same data, so the data stored by Freetds 
>>> using
>>> ISO-8859-1 can't be read by .net application for example.
>>>
>>> Our conclusion was that FreeTDS is unable to store all Unicode 
>>> characters in
>>> SQL Server in UCS-2.
>>>
>>> Is it correct?
>>> Are there any patch that allow to store all UCS-2 characters?
>>> Is posible create a patch to allow this?
>>> Can someone guide me to start to create this patch?
>>>
>>> Best regards,
>>> Hugo
>>> _______________________________________________
>>> FreeTDS mailing list
>>> FreeTDS at lists.ibiblio.org
>>> http://lists.ibiblio.org/mailman/listinfo/freetds
>> _______________________________________________
>> FreeTDS mailing list
>> FreeTDS at lists.ibiblio.org
>> http://lists.ibiblio.org/mailman/listinfo/freetds
>



More information about the FreeTDS mailing list