暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文] PostgreSQL 14 – 添加 unistr 函数

原创 Pavel Stehule 2021-08-18
833

这允许使用 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论