freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
Re: [freetds] Set up client charset with DSN-less configuration
- From: Frediano Ziglio <freddy77 AT gmail.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Set up client charset with DSN-less configuration
- Date: Wed, 6 Jul 2016 12:34:01 +0100
2016-07-05 22:16 GMT+01:00 Johnny Yan <jyan AT tableau.com>:
> Hi,
>
>
> We're writing data analytic application on Linux using FreeTDS(0.95.81)
> with unixODBC(2.3.4) to connect to SQL Server databases. Since we need to
> programmatically decide the hosts and other info provided by our customers,
> we decided to use the DSN-less configuration and pass the attributes
> through the connection string. However it seems that we can't set up the
> client side charset correctly.
>
>
> From the attached simple sample code, you could see that we could connect
> with that connection string(you need to change the server and
> username/password if you want to test it). And we get the following head in
> the freetds.log file,
>
>
> log.c:167:Starting log file for FreeTDS 0.95.81
> on 2016-06-30 18:17:32 with debug flags 0x4fff.
> iconv.c:328:tds_iconv_open(0xff47a0, UTF-8)
> iconv.c:187:local name for ISO-8859-1 is ISO-8859-1
> iconv.c:187:local name for UTF-8 is UTF-8
> iconv.c:187:local name for UCS-2LE is UCS-2LE
> iconv.c:187:local name for UCS-2BE is UCS-2BE
> iconv.c:346:setting up conversions for client charset "UTF-8"
> iconv.c:348:preparing iconv for "UTF-8" <-> "UCS-2LE" conversion
> iconv.c:395:preparing iconv for "ISO-8859-1" <-> "UCS-2LE" conversion
>
>
> It seems that the client charset is set to UTF-8. Am I correct? My
> understanding is that this is from the LANG env variable since we didn't
> specify it anywhere. Right?
>
>
> However when we try to specify the charset in the connection string, that
> is appending ";ClientCharset=UTF-16" to the connection string in the
> sample, we didn't observe the expected behavior. In another words, we still
> see the above bold line which implies that the ClientCharset attr in the
> connection string didn't make any difference. Is that expected? Did we do
> it correctly? Probably not. If so, how can we make it right?
>
>
> Let me know if you need any other info. Thank you very much!
>
>
> Johnny
>
Hi,
ClientCharset setting is for multi-byte, not wide. To use wide use
*W versions of the APIs. Internally utf-8 is used so this is normal.
ODBC does not force libTDS to do conversion to multi-byte so only one
conversion is done (beside metadatas).
Frediano
-
[freetds] Set up client charset with DSN-less configuration,
Johnny Yan, 07/05/2016
-
Re: [freetds] Set up client charset with DSN-less configuration,
Frediano Ziglio, 07/06/2016
-
Re: [freetds] Set up client charset with DSN-less configuration,
Johnny Yan, 07/06/2016
- Re: [freetds] Set up client charset with DSN-less configuration, Frediano Ziglio, 07/07/2016
-
Re: [freetds] Set up client charset with DSN-less configuration,
Johnny Yan, 07/06/2016
-
Re: [freetds] Set up client charset with DSN-less configuration,
Frediano Ziglio, 07/06/2016
Archive powered by MHonArc 2.6.24.