在PostgreSQL中安装utf8排序规则

时间:2017-12-31 18:44:52

标签: postgresql encoding utf-8 locale collation

现在,我可以在pgAdmin4 GUI中创建新数据库时选择Encoding : UTF8

但是,没有选择utf8_general_ci作为排序规则或字符类型的选项。当我select * from pg_collation;时,我看不到与utf8_general_ci相关的任何排序规则。

来自mySQL背景我很困惑。我是否必须在PostgreSQL 10或windows10中安装类似utf8(例如utf8_general_ciutf8_unicode_ci)的排序规则?

我只想将mySQL collation utf8_general_ci等同于PostgreSQL。

谢谢

1 个答案:

答案 0 :(得分:5)

utf8是一种编码(如何将unicode字符表示为一系列字节),而不是整理(在此之前哪个字符)。

我认为utf8_general_ci(或更现代的utf8_unicode_ci)的Postgres 10排序规则等同于und-x-icu - 这是一个未定义的排序规则(未定义任何现实世界语言) ICU图书馆。这种整理将从大多数语言中排除相当合理的字符。

ICU支持是PostgreSQL 10中添加的一项新功能,因此对于较旧的PostgreSQL版本或在编译期间禁用它时,此排序规则不可用。在此之前,Postgres使用操作系统提供的整理支持,这在操作系统之间有所不同。