Thread: R: Re: Chinese in Postgres
Thanks for your answer. Yes, the client is also UTF8: MyDB=# show client_encoding; client_encoding ----------------- UTF8 (1 row) Cheers Francesco ----Messaggio originale---- Da: hannu@2ndQuadrant.com Data: 16/08/2013 14.16 A: "ciifrancesco@tiscali.it" <ciifrancesco@tiscali.it> Cc: <pgsql-hackers@postgresql.org>, <pgsql-zh- general@postgresql.org>, <pgsql-ru-general@postgresql.org> Ogg: Re: [HACKERS] Chinese in Postgres On 08/16/2013 01:25 PM, ciifrancesco@tiscali.it wrote: > Hello all, > before writing this message, I wrote about this in other mailing lists > without solving my problem. > Maybe some of you can help me. > > I have problems with a DB in postgres, when i try to insert Chinese > strings in UTF-8 format. > If I insert the data using a C++ program I have empty squares, in this > format: ��� (3 empty squares for each chinese ideogram as that is the > length in UTF-8) > If the string contains chinese mixed with ASCII, the ASCII is OK but > the Chinese is broken: > 漢語1-3漢語 --> ������1- 3������ Can you cehck that your client encoding is also UTF8 hannu=# show client_encoding ; client_encoding ----------------- UTF8 (1 row) Cheers -- Hannu Krosing PostgreSQL Consultant Performance, Scalability and High Availability 2ndQuadrant Nordic OÜ -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql- hackers Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30€ di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/
On 08/16/2013 02:40 PM, ciifrancesco@tiscali.it wrote: > Thanks for your answer. > Yes, the client is also UTF8: > > MyDB=# show > client_encoding; > client_encoding > ----------------- > UTF8 > (1 row) Strange, it works for me : hannu@hannu-900X3E:~/workspace/my-app$ psql psql (9.3beta2, server 9.2.4) Type "help" for help. hannu=# select * from pg_stat_activity; hannu=# show client_encoding ; client_encoding ----------------- UTF8 (1 row) hannu=# create table tchinese(data text); CREATE TABLE hannu=# insert into tchinese values('漢語1-3漢語'); INSERT 0 1 hannu=# select * from tchinese ; data ------------- 漢語1-3漢語 (1 row) hannu=# \q Are you sure that the client-encoding is also the same when you are actually doing the import ? Or when you are getting the wrong results when reading what does length() of the bad field give you ? hannu=# select data, length(data) from tchinese ; data | length -------------+-------- 漢語1-3漢語 | 7 (1 row) -- Hannu Krosing PostgreSQL Consultant Performance, Scalability and High Availability 2ndQuadrant Nordic OÜ
maybe your C++ program has something (such as charset or configuation) causing this strange thing
mark
发件人: "ciifrancesco@tiscali.it" <ciifrancesco@tiscali.it>
收件人: hannu@2ndQuadrant.com
抄送: pgsql-hackers@postgresql.org; pgsql-zh-general@postgresql.org; pgsql-ru-general@postgresql.org
发送日期: 2013年8月16日, 星期五, 8:40 下午
主题: [pgsql-zh-general] R: Re: [HACKERS] Chinese in Postgres
Thanks for your answer.
Yes, the client is also UTF8:
MyDB=# show
client_encoding;
client_encoding
-----------------
UTF8
(1 row)
Cheers
Francesco
----Messaggio originale----
Da: hannu@2ndQuadrant.com
Data: 16/08/2013 14.16
A: "ciifrancesco@tiscali.it"
<ciifrancesco@tiscali.it>
Cc: <pgsql-hackers@postgresql.org>, <pgsql-zh-
general@postgresql.org>, <pgsql-ru-general@postgresql.org>
Ogg: Re:
[HACKERS] Chinese in Postgres
On 08/16/2013 01:25 PM,
ciifrancesco@tiscali.it wrote:
> Hello all,
> before writing this
message, I wrote about this in other mailing lists
> without solving my
problem.
> Maybe some of you can help me.
>
> I have problems with a DB
in postgres, when i try to insert Chinese
> strings in UTF-8 format.
>
If I insert the data using a C++ program I have empty squares, in this
> format: ��� (3 empty squares for each chinese ideogram as that is the
> length in UTF-8)
> If the string contains chinese mixed with ASCII,
the ASCII is OK but
> the Chinese is broken:
> 漢語1-3漢語 --> ������1-
3������
Can you cehck that your client encoding is also UTF8
hannu=#
show client_encoding ;
client_encoding
-----------------
UTF8
(1 row)
Cheers
--
Hannu Krosing
PostgreSQL Consultant
Performance,
Scalability and High Availability
2ndQuadrant Nordic OÜ
--
Sent via
pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make
changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-
hackers
Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/
--
Sent via pgsql-zh-general mailing list (pgsql-zh-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-zh-general
mark
发件人: "ciifrancesco@tiscali.it" <ciifrancesco@tiscali.it>
收件人: hannu@2ndQuadrant.com
抄送: pgsql-hackers@postgresql.org; pgsql-zh-general@postgresql.org; pgsql-ru-general@postgresql.org
发送日期: 2013年8月16日, 星期五, 8:40 下午
主题: [pgsql-zh-general] R: Re: [HACKERS] Chinese in Postgres
Thanks for your answer.
Yes, the client is also UTF8:
MyDB=# show
client_encoding;
client_encoding
-----------------
UTF8
(1 row)
Cheers
Francesco
----Messaggio originale----
Da: hannu@2ndQuadrant.com
Data: 16/08/2013 14.16
A: "ciifrancesco@tiscali.it"
<ciifrancesco@tiscali.it>
Cc: <pgsql-hackers@postgresql.org>, <pgsql-zh-
general@postgresql.org>, <pgsql-ru-general@postgresql.org>
Ogg: Re:
[HACKERS] Chinese in Postgres
On 08/16/2013 01:25 PM,
ciifrancesco@tiscali.it wrote:
> Hello all,
> before writing this
message, I wrote about this in other mailing lists
> without solving my
problem.
> Maybe some of you can help me.
>
> I have problems with a DB
in postgres, when i try to insert Chinese
> strings in UTF-8 format.
>
If I insert the data using a C++ program I have empty squares, in this
> format: ��� (3 empty squares for each chinese ideogram as that is the
> length in UTF-8)
> If the string contains chinese mixed with ASCII,
the ASCII is OK but
> the Chinese is broken:
> 漢語1-3漢語 --> ������1-
3������
Can you cehck that your client encoding is also UTF8
hannu=#
show client_encoding ;
client_encoding
-----------------
UTF8
(1 row)
Cheers
--
Hannu Krosing
PostgreSQL Consultant
Performance,
Scalability and High Availability
2ndQuadrant Nordic OÜ
--
Sent via
pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make
changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-
hackers
Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/
--
Sent via pgsql-zh-general mailing list (pgsql-zh-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-zh-general
[ Could you please trim your citations, i.e., please don’t top-post: https://en.wikipedia.org/wiki/Posting_style#Top-posting ] 2013/8/16 Francesco <ciifrancesco@tiscali.it>: > Thanks for your answer. > Yes, the client is also UTF8: > > MyDB=# show > client_encoding; > client_encoding > ----------------- > UTF8 > (1 row) I guess that this is the client encoding used by psql. I suspect your C++-program doesn’t use client encoding UTF8. What library are you using, libpq? Did you run the psql instance (whose output you pasted) on Windows or on some kind of UNIX-machine over SSH? Does your problematic C++-program run on Windows or the UNIX-machine? (The “client encoding” is not a property of the database, but of the specific client you are using. The C++-program’s client encoding might therefore by entirely different from the one used by psql, especially if you don’t run them on the same machine.) [ BTW, I think this question really doesn’t belong on -hackers, as no-one seems to think it is a bug, nor is it a question about PostgreSQL internals. ] Nicolas -- A. Because it breaks the logical sequence of discussion. Q. Why is top posting bad?