Skip to Content.
Sympa Menu

freetds - Re: [freetds] client Czech charset name unrecognized

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Daniel Fazekas <fdsubs AT t-online.hu>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] client Czech charset name unrecognized
  • Date: Fri, 15 Jul 2005 14:36:40 +0200


On Jul 15, 2005, at 13:27, Milan Vobecky wrote:

Since you say that...

I test connection with tsql and all is OK. But when I test connection
through php I can't obtain data.

...this usually points to a problem with freetds unable to read its configuration file when run under php/apache.
For example you tried tsql as root which had no problem accessing the configuration file, while the user account apache runs as isn't allowed to enter the config directory and read the file.

Another surprisingly common occurrence on this list is having people end up with multiple copies of FreeTDS on their system, each configured with a different prefix, thus expecting the freetds.conf file in a different place.

As a first step in finding the culprit, I always recommend in these cases to get Apache out of the picture and make sure you got it to work with the command line (cli SAPI) version of php first.

Try running from your shell:
TDSDUMP=stdout TDSDUMPCONFIG=stdout php /path/to/your/php/script.php

client charset = CP852
//data in sybase have charset cp852
[...]
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

And I think you also got a slight misunderstanding on what the client charset parameter is for, although this is unrelated to your current problem, it might become one in the future.

The client charset setting tells FreeTDS what the data coming from your program is in and what encoding should is use for data returned from the server, before sending it back to your program.

It is not a setting to tell FreeTDS what encoding the server uses. The server should know that and tell FreeTDS on its own, if it keeps that encoding for use during the TDS conversation at all. I don't really know about Sybase servers.

Either way, the client charset is used to tell FreeTDS what your program as the client wishes to use, unrelated to what encoding the server uses. So if you want to serve pages in windows-1250, that's what you should be specifying as the client charset.
Your only limitation is that you should be using an encoding which is either a superset of the server encoding or entirely compatible with it, so any character which could be represented in the server's encoding could be translated to your client.


Finally, you are trying to use a rather old version of FreeTDS. You might want to consider updating it to the latest stable version.

--
fds




Archive powered by MHonArc 2.6.24.

Top of Page