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