| From: | Zhongpu Chen <chenloveit(at)gmail(dot)com> |
|---|---|
| To: | Junwang Zhao <zhjwpku(at)gmail(dot)com> |
| Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Character with byte sequence 0xa2 0xa3 in encoding "EUC_CN" has no equivalent in encoding "UTF8" |
| Date: | 2026-05-01 16:09:19 |
| Message-ID: | CA+1gyqJMtuTofZDy+CeomGGhsFGXw6JrdyAhqvnLii44oKePGg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
```
demo_euc_cn_db=# SET client_encoding TO 'EUC_CN';
SET
demo_euc_cn_db=# SELECT * FROM t WHERE id = 1;
id | s
----+----
1 | ��
(1 row)
```
Since 0xA2A3 is invalid in EUC-CN, it cannot be mapped to any meaningful
character. Currently, EUC-CN allows all 2-byte within A1-EF, but this
coarse-grained approach is flawed.
On Fri, May 1, 2026 at 11:07 PM Junwang Zhao <zhjwpku(at)gmail(dot)com> wrote:
> On Fri, May 1, 2026 at 9:59 PM Zhongpu Chen <chenloveit(at)gmail(dot)com> wrote:
> >
> > ## Description
> >
> > The legacy encodings allow some invalid bytes, which will cause errors
> during SELECT operations.
> >
> > ## How to reproduce
> >
> > ```shell
> > createdb -E EUC_CN -T template0 --locale=C demo_euc_cn_db
> > ```
> >
> > ```sql
> > demo_euc_cn_db=# CREATE TABLE t(id int, s varchar(10));
> >
> > demo_euc_cn_db=# INSERT INTO t VALUES(1, E'\xA2\xA3');
> > INSERT 0 1
> > demo_euc_cn_db=# SELECT * FROM t WHERE id = 1;
> > ERROR: character with byte sequence 0xa2 0xa3 in encoding "EUC_CN" has
> no equivalent in encoding "UTF8"
>
> Can you try the following statement before select?
> SET client_encoding TO 'EUC_CN';
>
> > ```
> >
> > --
> > Zhongpu Chen
>
>
>
> --
> Regards
> Junwang Zhao
>
--
Zhongpu Chen
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2026-05-01 17:11:13 | Re: [BUG] false positive in bt_index_check in case of short 4B varlena datum |
| Previous Message | Junwang Zhao | 2026-05-01 15:07:16 | Re: Character with byte sequence 0xa2 0xa3 in encoding "EUC_CN" has no equivalent in encoding "UTF8" |