postgresql 字符集
postgresql数据库支持多种字符集,在配置字符集时要分清楚服务器与客户端的字符集,字符集不一致尽管有时能够发生转换,但带来的问题也很头疼。语言环境的配置也很重要。
服务器字符集<来自文档>:
name Description Language Server? Bytes/Char AliasesBIG5 Big Five Traditional Chinese No 1-2 WIN950,windows950EUC_CN Extended UNIX Code-CN SimplifIEd Chinese Yes 3 EUC_JP Extended UNIX CodeJP Japanese Yes EUC_JIS_2004 Extended UNIX CodeJP,JIS X 0213 Japanese Yes EUC_KR Extended UNIX CodeKR Korean Yes EUC_TW Extended UNIX CodeTW Traditional Chinese,Taiwanese Yes GB18030 National Standard Chinese No GBK Extended National Standard SimplifIEd Chinese No WIN936,windows936ISO_8859_5 ISO 88595,ECMA 113 LatinCyrillic Yes ISO_8859_6 ISO 6114arabic Yes ISO_8859_7 ISO 7118Greek Yes ISO_8859_8 ISO 8121Hebrew Yes JOHAB JOHAB Korean (Hangul) No KOI8 KOI8R(U) Cyrillic Yes KOI8Rlatin1 ISO 94 Western European Yes ISO88591LATIN2 ISO Central European Yes ISO88592LATIN3 ISO South European Yes ISO88593LATIN4 ISO 4 north European Yes ISO88594LATIN5 ISO 9128 Turkish Yes ISO88599LATIN6 ISO 10144 nordic Yes ISO885910LATIN7 ISO 13 Baltic Yes ISO885913LATIN8 ISO 14 Celtic Yes ISO885914LATIN9 ISO 15 latin1 with Euro and accents Yes ISO885915latin10 ISO 1614111 Romanian Yes ISO885916MulE_INTERNAL Mule internal code Multilingual Emacs Yes SJIS Shift JIS Japanese No Mskanji,ShiftJIS,WIN932,windows932SHIFT_JIS_2004 Shift JIS,0)"> Japanese No sql_ASCII unspecifIEd (see text) any Yes UHC UnifIEd Hangul Code Korean No WIN949,windows949UTF8 Unicode,bit all Yes UnicodeWIN866 windows cp866 Cyrillic Yes ALTWIN874 windows CP874 Thai Yes WIN1250 windows CP1250 Central European Yes WIN1251 windows CP1251 Cyrillic Yes WINWIN1252 windows CP1252 Western European Yes WIN1253 windows CP1253 Greek Yes WIN1254 windows CP1254 Turkish Yes WIN1255 windows CP1255 Hebrew Yes WIN1256 windows CP1256 arabic Yes WIN1257 windows CP1257 Baltic Yes WIN1258 windows CP1258 VIEtnamese Yes ABC,TCVN,TCVN5712,VSCII
常用的简体中文字符集是UTF8和EUC_CN两种。
可自动转换字符集<来自文档>:
以下针对客户端与服务器字符集配置问题作几个小测试。
测试一:服务器、客户端、语言环境一致的情况
代码 [postgre@iss3984 ~]$ echo $LANGen_US.UTF[postgre@iss3984 ]$ psql daduxiongWelcome to psql 8.3.11 (server ),the Postgresql interactive terminal.Type: \copyright for distribution terms \h help with sql commands \ help with psql commands \g or terminate with semicolon to execute query \q to quitdaduxiong=# \l List of databases name | Owner EnCoding-----------+---------+---------- daduxiong postgre UTF8 postgres UTF8 template0 UTF8 template1 UTF8( rows)daduxiong# show clIEnt_enCoding; clIEnt_enCoding----------------- UTF8( row)daduxiong# insert into t1 values ('中国');INSERT 0 daduxiong# select * from t1; ID name ----+------------------------ 中国 ( row)服务器与客户端字符集相同,在数据录入时不发生字符集转换;因语言环境也相同所以展现不会出现乱码。
测试二:客户端与服务器、语言环境不一致的情况
代码 daduxiong# \enCoding GBKdaduxiong GBK(日本 name ----+------------------------- �й� 日本 ( rows)客户端与服务器的字符集不一致,在数据录入时将发生字符集转换;当前展现的第二条记录非乱码形式是因为客户端字符集为GBK,在UTF8下同样出现乱码,在使用时需要语言环境进行配置。
测试三:服务器与客户端、语言环境不一致的情况
客户端、语言环境均配置为GBK字符集,在当前环境下展现的为非乱码形式,数据录入时将发生字符集转换。
测试四:服务器与客户端、语言环境恢复一致的情况
以上是内存溢出为你收集整理的postgresql 字符集全部内容,希望文章能够帮你解决postgresql 字符集所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)