pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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) download view image
image428881.png (image/png, 3.7K) download view image

view thread (13+ messages)  latest in thread

Message-ID: <d60efdf8caa7379a7483cd530ba5098e@mail.gmail.com>
Permalink:  ../d60efdf8caa7379a7483cd530ba5098e@mail.gmail.com/
Also on:    postgresql.org/message-id/d60efdf8caa7379a7483cd530ba5098e@mail.gmail.com

 · 

reply

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