Linux 如何设置PostgreSQL数据库的编码?
在Linux Mint上的PostgreSQL 9.1中,我看不到西里尔字母符号。所以我想用西里尔字母编码创建新的bd。我说:Linux 如何设置PostgreSQL数据库的编码?,linux,postgresql,encoding,Linux,Postgresql,Encoding,在Linux Mint上的PostgreSQL 9.1中,我看不到西里尔字母符号。所以我想用西里尔字母编码创建新的bd。我说: CREATE DATABASE ekb_1 ENCODING 'CP1251' TEMPLATE postgistemplate; 但是得到错误: postgres=# CREATE DATABASE ekb_1 ENCODING 'WIN1251' TEMPLATE postgistemplate; ERROR: encoding WIN1251 does not
CREATE DATABASE ekb_1 ENCODING 'CP1251' TEMPLATE postgistemplate;
但是得到错误:
postgres=# CREATE DATABASE ekb_1 ENCODING 'WIN1251' TEMPLATE postgistemplate;
ERROR: encoding WIN1251 does not match locale ru_RU.UTF-8
ПОДРОБНОСТИ: The chosen LC_CTYPE setting requires encoding UTF8.
我尝试添加lc_类型'ru_ru.WIN1251'
,但没有帮助。怎么了?这可能是这样的:
CREATE DATABASE dbname ENCODING 'win1251'
lc_ctype='ru_RU.CP1251'
lc_collate='ru_RU.CP1251'
TEMPLATE template0;
如果ru_ru.CP1251
区域设置不存在,请使用sudo locale gen ru_ru.CP1251
(Ubuntu风格,我认为Mint在这方面与之类似)和重新启动postgres(它不会动态拾取新的区域设置,错误消息令人困惑)
postgistemplate
db只有在具有相同编码的情况下才会被接受为模板,这在上下文中是不可能的。大概是在UTF-8
中
在这种情况下,理论上有两种选择,不确定是否可行:
template0
创建数据库,然后在其中播放postgis初始化脚本win1251
编码中重新创建postgistemplate
数据库,假设它受postgis支持