如何获取PostgeSQL中任何字符的代码点和utf8编码

时间:2019-06-20 20:05:54

标签: postgresql utf-8 character-encoding

除了ascii()以外,是否还有其他PostgreSQL函数可以显示字符的代码点和utf8编码?

ascii()(顾名思义?)受到限制,如以下示例所示:

字符ą,是带有变音符<的 a ,实际上是两个字符组合成一个字符:

  • 一个\ x61 \(= 97十进制)

  • 一个所谓的组合字符,一个单独的ogonek:̨\ xCC \ xA8

ascii()不适合这种字符(组合):

select ascii('ą');
ascii 
-------
97

97是字符 a 的代码点,因此不会显示ą的完整代码点。

如何获取PostgreSQL中任何字符的代码点和utf8编码,即组合字符也是如此?

1 个答案:

答案 0 :(得分:1)

麻烦的是不是 一个字符,而是两个字符的组合,一个a和一个“组合字符”。虽然这些字符是作为单个字符呈现的,但它们不是。

如果您使用单个字符½(UNICODE代码点261),则不会有此问题。

您将需要将字符组合转换为单个字符(如果可能)的软件,但据我所知PostgreSQL没有这种功能。