现在,我可以在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。
谢谢
答案 0 :(得分:5)
utf8
是一种编码(如何将unicode字符表示为一系列字节),而不是整理(在此之前哪个字符)。
我认为utf8_general_ci
(或更现代的utf8_unicode_ci
)的Postgres 10排序规则等同于und-x-icu
- 这是一个未定义的排序规则(未定义任何现实世界语言) ICU图书馆。这种整理将从大多数语言中排除相当合理的字符。
ICU支持是PostgreSQL 10中添加的一项新功能,因此对于较旧的PostgreSQL版本或在编译期间禁用它时,此排序规则不可用。在此之前,Postgres使用操作系统提供的整理支持,这在操作系统之间有所不同。