gpt4 book ai didi

sql - SQL 长度函数如何处理 unicode 字素?

转载 作者:行者123 更新时间:2023-11-29 11:49:13 25 4
gpt4 key购买 nike

考虑以下场景,其中我有 \U00000045\U00000301 定义的字符串 É

1) https://www.fileformat.info/info/unicode/char/0045/index.htm
2) https://www.fileformat.info/info/unicode/char/0301/index.htm

varchar(1) 约束的表是否会将其视为有效的 1 个字符输入。或者它会因为被认为是 2 个字符输入而被拒绝吗?

SQL一般如何处理字素字符串的长度?

最佳答案

我可能对这个查询看起来很傻,但仍然:

t=# with c(u) as (values( e'\U00000045\U00000301'))
select u, u::varchar(1), u::varchar(2),char_length(u), octet_length(u) from c;
u | u | u | char_length | octet_length
---+---+---+-------------+--------------
É | E | É | 2 | 3
(1 row)

编辑

t=# show server_encoding ;
server_encoding
-----------------
UTF8
(1 row)

t=# \l+ t
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
------+-------+----------+---------+-------+-------------------+-------+------------+-------------
t | vao | UTF8 | C | UTF-8 | | 51 MB | pg_default |
(1 row)

关于sql - SQL 长度函数如何处理 unicode 字素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com