Answers:
在Windows上,可能已经安装了所需的语言环境,其名称与在Unix上的名称不同。
例如,对于Windows XP上的PG9.1,使用默认语言环境French_France.1252
且未安装任何其他语言包(我记得),以下数据库创建对我来说似乎工作正常。
CREATE DATABASE pldb
ENCODING = 'UTF8'
LC_COLLATE = 'Polish'
LC_CTYPE = 'Polish'
TEMPLATE=template0;
另外,通过在新创建的数据库中以UTF8提交此查询,可以快速测试排序顺序:
select * from (values ('z'), ('ź'), ('ż'), ('s'), ('ś'), ('x'), ('y')) as letters order by 1;
似乎输出正确的结果:
小号
ś
X
ý
ž
¼的
ż
据我所知,您不能强制Windows版本的PostgreSQL支持Windows不提供的语言环境和排序规则。PostgreSQL使用系统区域设置和排序规则支持。如果系统不支持,则无法使用。有时这是一个令人沮丧的限制,但实际上是这样。您需要选择Windows安装支持的合适的编码和排序规则。
如果您想为OS归类名称起别名并调用它pl_PL.utf8
,则可以使用来完成CREATE COLLATION
。
参见字符集支持,归类支持和pg_collation目录表。
您要解决的问题是什么?