首页 > 解决方案 > PostgreSQL COLLATE 和字符类型 - 在澳大利亚托管的 RDS 服务中使用的值

问题描述

我们在 AWS 悉尼 (ap-southeast-2) 中使用 Aurora RDS PostgreSQL 数据库

该应用程序需要 UTF-8 编码。

排序规则和字符类型应该是什么?

LC_COLLATE="en_AU.UTF-8"
LC_CTYPE="en_AU.UTF-8"

使用en_US.UTF-8而不是en_AU.UTF-8有什么影响吗?

到目前为止,我无法根据我的搜索得出结论。

我使用 AWS 控制台(用于 RDS)时的默认值是 en_US。基于此,我猜测它应该很好,但是希望在这里听取专家关于任何潜在问题/陷阱的意见。

有几个问题讨论了 C.UTF-8 和 en_US.UTF-8 之间的区别,但我看不到 en_US.UTF-8 和 en_AU.UTF-8 之间的任何查询/答案。

此处列出了我试图获得一些见解的该空间中的一些问答,以供快速参考:

https://dba.stackexchange.com/questions/46408/how-to-choose-a-collat​​ion-for-international-database

https://dba.stackexchange.com/questions/240930/postgresql-difference-between-collat​​ions-c-and-c-utf-8

https://dba.stackexchange.com/questions/211544/postgres-encoding-collat​​ion-and-ctype

注意: Cross 在DBA Stack 交换中发布了这个。

标签: postgresqlamazon-web-servicescharacter-encodingcollationamazon-aurora

解决方案


“en_US.UTF-8 而不是 en_AU.UTF-8”:- 这些只是 2 个不同语言环境的 UTF-8 变体。有人会使用 en_AU.UTF-8,因为他们想使用澳大利亚英语而不是美国英语,但两者都使用 UTF-8 编码。我能想到的唯一开销很小的就是服务器和客户端之间的自动字符转换:- https://www.postgresql.org/docs/10/multibyte.html#id-1.6.10.5.7什么都没有Stock Postgres 和 Aurora Postgres 之间的排序规则和字符类型不同。


推荐阅读