Skip to Content.
Sympa Menu

freetds - Re: [freetds] charset problem with Sybase on SunOS server and Ubuntu client

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] charset problem with Sybase on SunOS server and Ubuntu client
  • Date: Mon, 24 Nov 2008 17:59:35 -0500

Frederick.Dubberspear AT sogetthis.com wrote:
> > I think this was fixed long ago. If you have a problem with 0.82,
> > I'll
> look into it.
>
> Thanks very much for the information. We've since upgraded and still
> seeing the same error. The log file is attached. Please, let me know if
> there's any more information about the client/server you need.

Hi Frederick,

I'm afraid the stack is quite deep these days. My Sybase server is
offline again.

The problem is roughly that the TDS 4.2/5.0 login packet uses the wrong
string to declare the client-side encoding. It's passing the iconv name
instead of the Sybase name. Anything you do to correct that should fix
the problem.

What is the Sybase name? According to sybase_character_sets.h, it's
"utf8". I'd go with that.

I think you might be able to get away with no coding change. If you set
"client charset" in freetds.conf to the Sybase name, it will -- because of
the bug -- pass that string to Sybase. Sybase will then convert all
character data to UTF-8. FreeTDS will complain and refuse to use iconv to
do any conversion, which is also fine for you. That basically would take
advantage of Sybase's "server-makes-right" policy, wherein the server is
responsible for matching the client's encoding and the client has no
encoding-conversion logic.

Try it. Look at the TDSDUMP log to see 1) if it's sent in the login
packet (as described above) and 2) that FreeTDS reports that no conversion
will be done. And please let us know how it works out.

--jkl








Archive powered by MHonArc 2.6.24.

Top of Page