Re: charset problem with Sybase on SunOS server and Ubuntu client

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
[email protected] 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
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.