现在,我可以在pgAdmin4 GUI中创建新数据库时选择Encoding : UTF8
。
但是,没有选择utf8_general_ci
作为校对或字符类型的选项。当我做select * from pg_collation;
时,我没有看到任何与utf8_general_ci
相关的整理。
来自mySQL背景我很困惑。我是否必须在PostgreSQL 10或windows10中安装类似utf8(例如utf8_general_ci
,utf8_unicode_ci
)的排序规则?
我只想将相同的mySQL collation utf8_general_ci
用于PostgreSQL。
谢谢
utf8
是一种编码(如何将unicode字符表示为一系列字节),而不是排序规则(该字符在此之前进行)。
我认为utf8_general_ci
(或更现代的utf8_unicode_ci
)的Postgres 10校对等同称为und-x-icu
- 这是ICU库提供的未定义的校对(未定义为任何现实世界语言)。这种整理将从大多数语言中排序相当合理的字符。
ICU支持是PostgreSQL 10中添加的一项新功能,因此这种排序规则不适用于较旧的PostgreSQL版本,也不适用于编译期间禁用的版本。之前Postgres使用操作系统提供的整理支持,这在操作系统之间有所不同。