I am not able to understand how the encoding is handled. I would be happy if someone can tell what is happening in the following scenario:
1. I have created a database with EUC_KR encoding and created a table and inserted some korean value into it.
=# CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
=# \c korean
korean=# SHOW client_encoding;
client_encoding
-----------------
UTF8
(1 row)
korean=# CREATE TABLE tbl (doc text);
korean=# INSERT INTO tbl VALUES ('그레스');
2. If I insert non-korean values it throws error:
korean=# INSERT INTO tbl VALUES ('データベース');
ERROR: character with byte sequence 0xe3 0x83 0xbc in encoding "UTF8" has no equivalent in encoding "EUC_KR"
korean=# SELECT * FROM tbl;
doc
--------
그레스
(1 row)
3. I change the client encoding to EUC_KR and try inserting the same korean characters and it throws an error:
korean=# SET client_encoding = 'EUC_KR';
SET
korean=# INSERT INTO tbl VALUES ('그레스');
ERROR: invalid byte sequence for encoding "EUC_KR": 0xa0 0x88
Even the SELECT statement displays something different. I am not able to understand why?
korean=# SELECT * FROM tbl;
doc
--------
����
(1 row)
Can someone please help me.