哪些做批發(fā)的網(wǎng)站比較正規(guī)企業(yè)文化標(biāo)語
目錄
設(shè)置字符集
1 設(shè)置集群默認的字符集編碼
2 設(shè)置數(shù)據(jù)庫的字符集編碼
查看字符集
1 查看數(shù)據(jù)字符集編碼?
2 查看服務(wù)端字符集
3 查看客戶端字符集
4 查看默認的排序規(guī)則和字符分類
?被支持的字符集
PostgreSQL里面的字符集支持你能夠以各種字符集存儲文本,包括單字節(jié)字符集,比如 ISO 8859 系列,以及多字節(jié)字符集 ,比如EUC(擴展 Unix 編碼 Extended Unix Code)、UTF-8 和 Mule 內(nèi)部編碼。所有被支持的字符集都可以被客戶端透明地使用,但少數(shù)只能在服務(wù)器上使用(即作為一種服務(wù)器方編碼)。默認的字符集是在使用?initdb
初始化你的PostgreSQL數(shù)據(jù)庫集簇時選擇的。在你創(chuàng)建一個數(shù)據(jù)庫時可以重載它,因此你可能會有多個數(shù)據(jù)庫并且每一個使用不同的字符集。
但是,一個重要的限制是每個數(shù)據(jù)庫的字符集必須和數(shù)據(jù)庫的LC_CTYPE
?(字符分類)和LC_COLLATE
?(字符串排序順序)設(shè)置兼容。對于?C
或POSIX
環(huán)境,任何字符集都是允許的, 但是對于其他libc提供的環(huán)境只有一種字符集可以正確工作(不過, 在Windows上UTF-8編碼可以和任何環(huán)境配合使用)。 如果您配置了ICU支持,則ICU提供的區(qū)域設(shè)置可用于大多數(shù)服務(wù)器端編碼, 但不能用于所有服務(wù)器端編碼。
設(shè)置字符集
1 設(shè)置集群默認的字符集編碼
initdb
為一個PostgreSQL集簇定義缺省的字符集(編碼)。比如:把缺省字符集設(shè)置為EUC_JP
(用于日文的擴展Unix 編碼)。
initdb -E EUC_JP
或者
initdb --encoding EUC_JP
如果沒有給出-E
或者--encoding
選項,initdb
會嘗試基于指定的或者默認的區(qū)域判斷要使用的合適編碼。?
2 設(shè)置數(shù)據(jù)庫的字符集編碼
數(shù)據(jù)庫創(chuàng)建時你指定一個非默認編碼,提供的編碼應(yīng)和選擇的區(qū)域兼容:
createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean
或者SQL
CREATE DATABASE korean WITH ENCODING 'EUC_KR' LC_COLLATE='ko_KR.euckr' LC_CTYPE='ko_KR.euckr' TEMPLATE=template0;
注意:上述命令指定拷貝template0
數(shù)據(jù)庫。在拷貝任何其他數(shù)據(jù)庫時,不能更改從源數(shù)據(jù)庫得來的編碼和區(qū)域設(shè)置,因為這可能會導(dǎo)致破壞數(shù)據(jù)。
查看字符集
1 查看數(shù)據(jù)字符集編碼?
數(shù)據(jù)庫的字符集存儲在系統(tǒng)目錄pg_database
中
psql -l
或者
postgres=# \lList of databasesName | Owner | Encoding | Collate | Ctype | Access privileges
-------------+----------+----------+-------------+-------------+-----------------------db3 | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |db4 | role1 | UTF8 | en_US.UTF8 | en_US.UTF8 |db5 | role2 | UTF8 | en_US.UTF8 | en_US.UTF8 |dbtemplate | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |dbtemplate1 | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |dbtemplate2 | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |korean | postgres | EUC_KR | ko_KR.euckr | ko_KR.euckr |postgres | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |template0 | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 | =c/postgres +| | | | | postgres=CTc/postgrestemplate1 | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 | =c/postgres +| | | | | postgres=CTc/postgrestestdb | postgres | UTF8 | en_US.UTF8 | en_US.UTF8 |
(11 rows)
2 查看服務(wù)端字符集
# 服務(wù)端字符集
postgres=# show server_encoding;server_encoding
-----------------UTF8
(1 row)
3 查看客戶端字符集
# 客戶端字符集
postgres=# show client_encoding;client_encoding
-----------------UTF8
(1 row)postgres=#
postgres=# \encoding
UTF8
4 查看默認的排序規(guī)則和字符分類
# 字符分類
postgres=# show lc_ctype;lc_ctype
------------en_US.UTF8
(1 row)# 排序規(guī)則
postgres=# show lc_collate;lc_collate
------------en_US.UTF8
?被支持的字符集
參考?PostgreSQL字符集