[freetds] Unicode problem

Vano Beridze vano.beridze at silkroad.ge
Tue Sep 3 09:13:50 EDT 2013


I've added ClientCharset to odbc.ini and restarted httpd.
Still the same result.

Vano Beridze
Software Developer
Silk Road Group

On 9/3/2013 5:09 PM, Vano Beridze wrote:
> odbc.ini
>
> [server]
> Driver          = FreeTDS
> Description             = SQL 2008
> Trace           = No
> Server          = 192.168.1.50
> Port            = 1433
> TDS Version             = 8.0
> Database                = mydb
>
> ClientCharset 	A name recognized by the iconv library linked to FreeTDS.
> Corresponds to client charset in freetds.conf. 	ISO 8859-1 	Character
> set (encoding) used by the client.
>
>
> I've defined UTF-8 in freetds.conf
> Is it necessary to indiciate it during odbc connection?
>
> Vano Beridze
> Software Developer
> Silk Road Group
>
> On 9/3/2013 3:45 PM, Frediano Ziglio wrote:
>> How did you configure odbc.ini ?
>>
>> Try to add ClientCharset (see
>> http://www.freetds.org/userguide/odbcconnattr.htm)
>>
>> Frediano
>>
>>
>> 2013/9/3 Vano Beridze <vano.beridze at silkroad.ge>
>>
>>> Hello,
>>>
>>> I've got windows 7 machine that runs SQL Server Express 2008  R2.
>>> I've some table with nvarchar field that contains unicode data.
>>>
>>> Another linux (CentOS 6.4) machine runs Apache 2.2 with php 5.3.3.
>>> freetds version is 0.91
>>>
>>> This is the /etc/freetds.conf file
>>> [global]
>>>            # TDS protocol version
>>>            tds version = 8.0
>>>            port = 1433
>>>            client charset = UTF-8
>>>            # Whether to write a TDSDUMP file for diagnostic purposes
>>>            # (setting this to /tmp is insecure on a multi-user system)
>>>            dump file = /tmp/freetds.log
>>>            debug flags = 0x4fff
>>>
>>>            # Command and connection timeouts
>>>            timeout = 180
>>>            connect timeout = 180
>>>
>>>            # If you get out-of-memory errors, it may mean that your client
>>>            # is trying to allocate a huge buffer for a TEXT field.
>>>            # Try setting 'text size' to a more reasonable limit
>>>            text size = 20971520
>>>
>>> I've created simple php script that connects to sql server and reads
>>> data from that table (actually there is a view to hide unnecessary fields)
>>>
>>> Here is the php script
>>> <?php
>>> echo "<html><head>";
>>> echo '<meta http-equiv="Content-type" content="text/html; charset=utf-8"
>>> />';
>>> echo "</head>";
>>> echo "<body>";
>>> echo "<h1>Hello</h1>";
>>> $connect = odbc_connect("server", "someuser", "somepass");
>>>
>>> if (!$connect) {
>>> echo '<h3 color="red">Could not connect to the database!!!</h3>';
>>> die();
>>> }
>>>
>>>
>>> # query the users table for all fields
>>> $query = "SELECT odf_address FROM dbo.odf";
>>>
>>> # perform the query
>>> $result = odbc_exec($connect, $query);
>>>
>>> # fetch the data from the database
>>> while(odbc_fetch_row($result)) {
>>> #$field1 = odbc_result($result, 1);
>>> $field2 = odbc_result($result, 1);
>>> #echo $field1;
>>> #echo "<br>";
>>> echo $field2;
>>> echo "<br>";
>>> }
>>>
>>> # close the connection
>>> odbc_close($connect);
>>> echo "</body></html>";
>>> ?>
>>>
>>> The script works fine. it connects and gets the data. The only problem I
>>> have is that data is shown as question marks, so it's not converted to
>>> UTF-8. I've read all the information I could find on the internet but
>>> can not solve the problem.
>>>
>>> Could you please suggest what's the problem?
>>>
>>> --
>>> Vano Beridze
>>> Software Developer
>>> Silk Road Group
>>>
>>>
>>> _______________________________________________
>>> FreeTDS mailing list
>>> FreeTDS at lists.ibiblio.org
>>> http://lists.ibiblio.org/mailman/listinfo/freetds
>>>
>> _______________________________________________
>> FreeTDS mailing list
>> FreeTDS at lists.ibiblio.org
>> http://lists.ibiblio.org/mailman/listinfo/freetds
>>
>>
>
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
>




More information about the FreeTDS mailing list