perl: warning: Setting locale Failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_HK:en",LC_ALL = (unset),LC_PAPER = "zh_CN.UTF-8",LC_ADDRESS = "zh_CN.UTF-8",LC_MONETARY = "zh_CN.UTF-8",LC_NUMERIC = "zh_CN.UTF-8",LC_TELEPHONE = "zh_CN.UTF-8",LC_IDENTIFICATION = "zh_CN.UTF-8",LC_MEASUREMENT = "zh_CN.UTF-8",LC_TIME = "zh_CN.UTF-8",LC_NAME = "zh_CN.UTF-8",LANG = "en_HK.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_HK.UTF-8").
select * from test;
里边存储汉子的字段 竟然 是
<E6><9D><8E>
....
查看client_encodeing的默认字符
show client_encoding;
client_encoding -----------------
sql_ASCII
#设置为UTF8
\encoding UTF8
设置完没有变过来 囧囧囧
上网查找竟然是本地字符集的问题:
$locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=zh_CN.UTF8
LANGUAGE=en_HK:en
LC_CTYPE="zh_CN.UTF8"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="zh_CN.UTF8"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="zh_CN.UTF8"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
要想达到应用程序中正常显示中文字符的目的,要下面的三个变量应该如下:
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_ALL=LC_ALL=zh_CN.UTF-8
支持中文简体执行:
sudo apt-get -y install language-pack-zh-hans
支持中文繁体执行:
sudo apt-get -y install language-pack-zh-hant
再去psql链接数据库执行sql 直接可以显示中文了,也没有这以下
warning 了:
$psql_db
psql (9.6.4)
Type "help" for help.