Обсуждение: Character encoding problem using Tcl
I use PostgreSQL 7.0.3 on Linux (i386) platform, Tcl 8.3 is installed.
When entering National special characters (e.g. accented german
characters) by use of psql into a database, all seems to be ok., the special
characters appear correct on queries (locale seems to work well in this case).
But when using a Tcl-based interface (e.g. pgaccess or home made tcl
based programs) to insert such characters into a table, they are not correct
displayed on queries by use of psql - they appear as two 'unreadable'
characters (they appear correct in queries done by the tcl application).
I tried to add multibyte support to postgresql, but still the same result.
How to solve this problem?
Johann
==========================================================
E-Mail: johann.woeckinger@epluse.at
Privat: woeckinger.johann@utanet.at
Tel. 07235/605-263 (Firma), 07235/65993 (privat)
Fax. 07235/605-383 (Firma)
Adresse/Firma: E+E Elektronik
Dr. Johann Wöckinger
Leiter Fertigung Systeme
Langwiesen 7
A-4210 Engerwitzdorf
"Johann Woeckinger" <johann.woeckinger@epluse.at> writes:
> But when using a Tcl-based interface (e.g. pgaccess or home made tcl
> based programs) to insert such characters into a table, they are not correct
> displayed on queries by use of psql - they appear as two 'unreadable'
> characters (they appear correct in queries done by the tcl application).
Hm. Tcl 8 uses Unicode (UTF-8) representation internally. It sounds
like the Unicode representation is getting sent straight to the database
rather than being converted into the character set the backend is
expecting.
We could fix this in libpgtcl if we could figure out what Tcl encoding
corresponds to the character set the backend is using. I'm not sure
if that's easy or hard.
Alternatively, building Postgres with multibyte support and creating
your database with UNICODE encoding ought to work.
regards, tom lane
Tom Lane wrote:
>"Johann Woeckinger" <johann.woeckinger@epluse.at> writes:
>> But when using a Tcl-based interface (e.g. pgaccess or home made tcl
>> based programs) to insert such characters into a table, they are not corre
>ct
>> displayed on queries by use of psql - they appear as two 'unreadable'
>> characters (they appear correct in queries done by the tcl application).
>
>Hm. Tcl 8 uses Unicode (UTF-8) representation internally. It sounds
>like the Unicode representation is getting sent straight to the database
>rather than being converted into the character set the backend is
>expecting.
>
>We could fix this in libpgtcl if we could figure out what Tcl encoding
>corresponds to the character set the backend is using. I'm not sure
>if that's easy or hard.
>
>Alternatively, building Postgres with multibyte support and creating
>your database with UNICODE encoding ought to work.
Tcl changed its behaviour at 8.1. If you use 8.0, it will probably
work.
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"And the angel said to her, " Do not be afraid, Mary;
for you have found favor with God. And behold, you
will conceive in your womb, and bear a son, and you
shall name Him Jesus." Luke 1:30,31