3

我尝试在 postgres 中创建具有不同编码的数据库(我使用 PgAdmin 作为我的数据库管理器),但是当我尝试使用非 UTF8 编码创建数据库时,PgAdmin 向我显示一个错误,说我无法创建数据库,因为它与我当前的语言环境“Portuguese_Brazil_1252”不匹配,并且 LC_Ctype 配置需要编码“WIN1252”。

如何在 PostGres 中配置它?我正在使用 Windows XP(不是我的选择)的语言环境测试服务器下运行它。是否可以创建具有不同编码的数据库,或者该行为是 PostGres 限制?这里的任何人已经成功地管理了它?

谢谢

4

1 回答 1

8

文档

为新数据库指定的字符集编码必须与所选的区域设置(LC_COLLATE 和 LC_CTYPE)兼容。如果语言环境是 C(或等效的 POSIX),则允许所有编码,但对于其他语言环境设置,只有一种编码可以正常工作。[...]

编码和区域设置必须与模板数据库的设置相匹配,除非将 template0 用作模板。

您应该能够通过以下任一(或两者)来创建数据库:

  • 指定template0为您的模板(而不是默认模板1)

  • 指定正确的 LC_COLLATE(尝试使用 LC_COLLATE = 'C')

  • 指定正确的 LC_CTYPE =(也尝试使用 LC_CTYPE = 'C')

您应该将这些设置添加到您的 CREATE 语句中(并且 PgAdmin 允许您从主窗体窗口执行此操作)

如果您不了解 template0/template1 并想知道,请阅读此处

于 2011-05-10T21:37:07.833 回答