这允许使用 Unicode 转义序列解码字符串。这是类似于 Unicode 转义字符串,但提供了更多的灵活性。
很长一段时间以来,我们有能力使用 unicoide 文字而不使用 unicode 字符。
例如 - 而不是写:
=$ select 'żółw';
我可以写:
=$ select U&'\017C\00F3\0142\0077';
甚至:
=$ select U&'\017C\00F3\0142w';
即使我需要更高的代码点,比如表情符号,我也可以:
$ select U&'\+01F603';
?column?
──────────
😃https://s.w.org/images/core/emoji/13.1.0/svg/1f603.svg">
(1 row)
这很棒。但是现在,我们可以使用unistr函数,它提供了更大的灵活性,并且在代码点编号中最多支持 8 个十六进制数字。
特别是 unistr 处理(X是单个十六进制数字):
- \XXXX(就像 U&’…’
- +XXXXXX(就像 U&’…’
- \uXXXX
- \XXXXXXX
这两个新增功能(\u 和 \U)似乎与 Python(可能还有其他语言)中的相同,因此应该不难掌握。
虽然我不认为现在需要 32 位(8 位十六进制数字)代码点,但很高兴知道我可以使用 python 字符串,并将其通过 unistr 进行解码:
$ select unistr('I \U0001f60d PostgreSQL\u203C');
unistr
─────────────────
I 😍https://s.w.org/images/core/emoji/13.1.0/svg/1f60d.svg"> PostgreSQL‼https://s.w.org/images/core/emoji/13.1.0/svg/203c.svg">
(1 row)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




