postgresql 字符集

postgresql 字符集,第1张

概述postgresql 字符集 postgresql数据库支持多种字符集,在配置字符集时要分清楚服务器与客户端的字符集,字符集不一致尽管有时能够发生转换,但带来的问题也很头疼。语言环境的配置也很重要。 服务器字符集<来自文档>: 代码 Name Description Language Server? Bytes/Char AliasesBIG5 Big Fiv

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两种。
可自动转换字符集<来自文档>:

代码 Server Character Set Available ClIEnt Character SetsBIG5 not supported as a server enCodingEUC_CN EUC_CN,MulE_INTERNAL,UTF8EUC_JP EUC_JP,SJIS,UTF8EUC_KR EUC_KR,UTF8EUC_TW EUC_TW,BIG5,UTF8GB18030 not supported a server enCodingGBK not supported a server enCodingISO_8859_5 ISO_8859_5,KOI8,UTF8,WIN866,WIN1251ISO_8859_6 ISO_8859_6,UTF8ISO_8859_7 ISO_8859_7,UTF8ISO_8859_8 ISO_8859_8,UTF8JOHAB JOHAB,UTF8KOI8 KOI8,ISO_8859_5,WIN1251latin1 latin1,UTF8LATIN2 LATIN2,WIN1250LATIN3 LATIN3,UTF8LATIN4 LATIN4,UTF8LATIN5 LATIN5,UTF8LATIN6 LATIN6,UTF8LATIN7 LATIN7,UTF8LATIN8 LATIN8,UTF8LATIN9 LATIN9,UTF8latin10 latin10,UTF8MulE_INTERNAL MulE_INTERNAL,EUC_CN,EUC_JP,EUC_KR,EUC_TW,latin1 to LATIN4,WIN1250,WIN1251SJIS not supported a server enCodingsql_ASCII any (no conversion will be performed)UHC not supported a server enCodingUTF8 all supported enCodingsWIN866 WIN866,WIN1251WIN874 WIN874,UTF8WIN1250 WIN1250,LATIN2,UTF8WIN1251 WIN1251,WIN866WIN1252 WIN1252,UTF8WIN1253 WIN1253,UTF8WIN1254 WIN1254,UTF8WIN1255 WIN1255,UTF8WIN1256 WIN1256,UTF8WIN1257 WIN1257,UTF8WIN1258 WIN1258,UTF8

以下针对客户端与服务器字符集配置问题作几个小测试。

测试一:服务器、客户端、语言环境一致的情况

代码 [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下同样出现乱码,在使用时需要语言环境进行配置。

测试三:服务器与客户端、语言环境不一致的情况

代码 # \q[postgre@iss3984 ]$ LANGGBK export LANG[postgre@iss3984 ]$ echo $LANGGBK[postgre@iss3984 美国 日本 美国 ( rows)daduxiong# \q

客户端、语言环境均配置为GBK字符集,在当前环境下展现的为非乱码形式,数据录入时将发生字符集转换。

测试四:服务器与客户端、语言环境恢复一致的情况

代码 en_US.UTF8 export LANG[postgre@iss3984 中国 鏃ユ湰 缇庡浗 (# 通过恢复原始的字符集状态,所有环境均为UTF8字符集,此时发现经过字符集转换后的内容为乱码。 总结

以上是内存溢出为你收集整理的postgresql 字符集全部内容,希望文章能够帮你解决postgresql 字符集所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1178730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存