gpt4 book ai didi

linux - 如何为PostgreSQL数据库设置编码?

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:40 25 4
gpt4 key购买 nike

我在 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 match locale ru_RU.UTF-8
ПОДРОБНОСТИ: The chosen LC_CTYPE setting requires encoding UTF8.

我尝试添加 lc_type '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 与此类似regard) 和重启 postgres(它不会动态选择新的语言环境,而且错误消息令人困惑)。

postgistemplate db 只有在具有相同编码的情况下才会被接受为模板,这在上下文中是不太可能的。大概是 UTF-8

在这种情况下,理论上有两种选择,不确定是否可行:

  1. 使用上面命令中提到的template0创建数据库,然后在里面运行postgis初始化脚本。
  2. 假设 postgis 支持,以 win1251 编码重新创建 postgistemplate 数据库。

就个人而言,我会尝试解决导致您首先尝试不同编码的 UTF-8 问题,并继续使用该编码。

关于linux - 如何为PostgreSQL数据库设置编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17588465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com