From: Graham Myers <gmyers@retailexpress.com>
To: ่ไบๅ ๆ <n2029@ndensan.co.jp>
To: David G. Johnston <david.g.johnston@gmail.com>
Cc: pgsql-admin@lists.postgresql.org
Subject: RE: About Unicode IVS
Date: Tue, 29 Mar 2022 09:26:09 +0100
Message-ID: <d60efdf8caa7379a7483cd530ba5098e@mail.gmail.com> (raw)
In-Reply-To: <011201d84345$f704a1f0$e50de5d0$@ndensan.co.jp>
References: <00e201d8431c$cb38eb40$61aac1c0$@ndensan.co.jp>
<CAKFQuwYCTmp5t5_7n+qRoKZArnBvv309CSi4XVdONXxQL6OX0Q@mail.gmail.com>
<00f601d84326$5367cf00$fa376d00$@ndensan.co.jp>
<ed987a765304d836fb05a9190eac46bf@mail.gmail.com>
<011201d84345$f704a1f0$e50de5d0$@ndensan.co.jp>
Thanks you for the explanation, Unicode always blows my mind ๐ The
problems is that postgres is counting code points which in your example is
two.
*From:* ่ไบๅ ๆ <n2029@ndensan.co.jp>
*Sent:* 29 March 2022 09:21
*To:* 'Graham Myers' <gmyers@retailexpress.com>; 'David G. Johnston' <
david.g.johnston@gmail.com>
*Cc:* pgsql-admin@lists.postgresql.org
*Subject:* RE: About Unicode IVS
thank you for your reply.
This is because two characters display one character.
This includes Unicode Variant Selectors and Combining Characters.
Moto.
*From:* Graham Myers <gmyers@retailexpress.com>
*Sent:* Tuesday, March 29, 2022 4:46 PM
*To:* ่ไบๅ ๆ <n2029@ndensan.co.jp>; David G. Johnston <
david.g.johnston@gmail.com>
*Cc:* pgsql-admin@lists.postgresql.org
*Subject:* RE: About Unicode IVS
Why do you expect the concatenation of two characters to return a length of
one?
Graham Myersโ
*From:* ่ไบๅ ๆ <n2029@ndensan.co.jp>
*Sent:* 29 March 2022 05:35
*To:* 'David G. Johnston' <david.g.johnston@gmail.com>
*Cc:* pgsql-admin@lists.postgresql.org
*Subject:* RE: About Unicode IVS
thank you for your reply.
It will be 2 characters.
select char_length(U&'\+008FBA' || U&'\+0E0102');
char_length
-------------
2
(1 ่ก)
select length('่พบ๓ ');
length
--------
2
(1 ่ก)
select char_length('่พบ๓ ');
char_length
-------------
2
(1 ่ก)
$ psql -l
ใใผใฟใใผในไธ่ฆง
ๅๅ | ๆๆ่ | ใจใณใณใผใใฃใณใฐ | ็ งๅ้ ๅบ | Ctype(ๅคๆๆผ็ฎๅญ) | ใขใฏใปในๆจฉ้
-----------+---------+------------------+----------+-------------------+---------------------
D209007 | D209007 | UTF8 | C | C |
postgres | D209007 | UTF8 | C | C |
template0 | D209007 | UTF8 | C | C |
=c/D209007 +
| | | | |
D209007=CTc/D209007
template1 | D209007 | UTF8 | C | C |
=c/D209007 +
| | | | |
D209007=CTc/D209007
(4 ่ก)
$ cat pgdata/PG_VERSION
13
Moto.
*From:* David G. Johnston <david.g.johnston@gmail.com>
*Sent:* Tuesday, March 29, 2022 12:38 PM
*To:* ่ไบๅ ๆ <n2029@ndensan.co.jp>
*Cc:* pgsql-admin@lists.postgresql.org
*Subject:* Re: About Unicode IVS
Graham Myers
On Monday, March 28, 2022, ่ไบๅ ๆ <n2029@ndensan.co.jp> wrote:
Hi,
In the Length () function, it will be 2 characters where you want it to be
1 character.
Is it possible to respond by changing the settings such as changing
the collation setting like SQL Server?
Also, if you understand how to deal with it (eg, create your own
function), it would be helpful if you could provide as much
information as you can.
Try char_length(text) instead.
David J.
Attachments:image001.png (image/png, 3.1K) downloadview imageimage428881.png (image/png, 3.7K) downloadview image
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: gmyers@retailexpress.com, n2029@ndensan.co.jp, david.g.johnston@gmail.com, pgsql-admin@lists.postgresql.org
Subject: RE: About Unicode IVS
In-Reply-To: <d60efdf8caa7379a7483cd530ba5098e@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox