postgresql - 所选的 LC_CTYPE 设置需要编码 "LATIN1"

标签 postgresql locale

我正在尝试在 PostgreSQL 9.4 中创建一个数据库

CREATE DATABASE "dbname" WITH ENCODING 'UTF8';

但是得到

ERROR:  encoding "UTF8" does not match locale "en_US"
DETAIL:  The chosen LC_CTYPE setting requires encoding "LATIN1".

错误。 PostgreSQL 在一个 vagrant box 上,我通过 SSH 隧道连接到这个数据库服务器。 Vagrant box 的语言环境设置:

root@precise32:/vagrant# locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

我电脑的区域设置:

erayalakese at Eray-MacBook-Air in ~/Desktop/VAGRANTBOXES
$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

我在安装 PostgreSQL 9.4 后没有更改区域设置。

我该如何解决这个问题?

最佳答案

虽然我不知道它为什么选择该语言环境,但您也可以通过指定 LC_CTYPE 等来解决它。

CREATE DATABASE "dbname" WITH ENCODING 'UTF8' LC_CTYPE 'en_US.UTF-8' LC_COLLATE 'en_US.UTF-8';

或类似的。

关于postgresql - 所选的 LC_CTYPE 设置需要编码 "LATIN1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027923/

相关文章:

postgresql - 在 Windows 上安装 Pgagent

java - PostgreSQL 找不到列

PostgreSQL 不正确地使用捷克语排序规则对 unicode 字符进行排序

r - 地理编码的波斯语参数在波斯语系统区域设置中不起作用

android - iOS(如 Android)支持的语言/地区列表是什么?

sql - 在同一分区上应用多个窗口函数

sql - 如何聚合行并创建数据透视表

html - 'datePublished' 属性和 HTML 'lang' 属性

c++ - 谁负责删除构面?

postgresql - 改变序列以同步到另一个序列