我尝试在postgres中创建具有不同编码的数据库(我使用PgAdmin作为我的数据库管理器),但是当我尝试使用非UTF8编码创建数据库时,PgAdmin向我显示错误,说我无法创建数据库,因为它与我当前的语言环境“Portuguese_Brazil_1252”不匹配,并且LC_Ctype配置需要编码“WIN1252”。
如何在PostGres中配置?我正在使用Windows XP(不是我选择)的区域设置测试服务器下运行它。是否可以创建具有不同编码的数据库或该行为是PostGres限制?这里的任何人都已经成功管理了这个吗?
由于
答案 0 :(得分:8)
来自docs:
指定的字符集编码 对于新数据库必须是 与所选区域设置兼容 设置(LC_COLLATE和LC_CTYPE)。如果 语言环境是C(或等效地) POSIX),然后所有编码都是 允许,但对于其他区域设置 只有一种编码会 好好工作。 [...]
编码和区域设置必须 匹配模板数据库的那些, 除了使用template0作为 模板。
您应该可以使用(或两者)创建数据库:
指定template0
作为模板(而不是默认模板1)
指定正确的LC_COLLATE(尝试使用LC_COLLATE ='C')
指定正确的LC_CTYPE =(尝试使用LC_CTYPE ='C')
您应该将这些设置添加到CREATE语句中(PgAdmin允许您从主窗体窗口中执行此操作)
如果您不了解template0 / template1并想知道read here