自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡述PostgreSQL字符集的幾種形式

數(shù)據(jù)庫 其他數(shù)據(jù)庫 PostgreSQL
今天我們要簡述一下PostgreSQL字符集的幾種形式,希望通過本文能讓大家對字符集有一個更深刻的理解。

PostgreSQL數(shù)據(jù)庫支持多種字符集,在配置字符集時要分清楚服務(wù)器與客戶端的字符集,字符集不一致盡管有時能夠發(fā)生轉(zhuǎn)換,但帶來的問題也很頭疼。語言環(huán)境的配置也很重要。

服務(wù)器字符集<來自文檔>:

  1. Name    Description    Language    Server?    Bytes/Char    Aliases  
  2. BIG5    Big Five    Traditional Chinese    No    1-2    WIN950, Windows950  
  3. EUC_CN    Extended UNIX Code-CN    Simplified Chinese    Yes    1-3       
  4. EUC_JP    Extended UNIX Code-JP    Japanese    Yes    1-3       
  5. EUC_JIS_2004    Extended UNIX Code-JP, JIS X 0213    Japanese    Yes    1-3       
  6. EUC_KR    Extended UNIX Code-KR    Korean    Yes    1-3       
  7. EUC_TW    Extended UNIX Code-TW    Traditional Chinese, Taiwanese    Yes    1-3       
  8. GB18030    National Standard    Chinese    No    1-2       
  9. GBK    Extended National Standard    Simplified Chinese    No    1-2    WIN936, Windows936  
  10. ISO_8859_5    ISO 8859-5, ECMA 113    Latin/Cyrillic    Yes    1      
  11. ISO_8859_6    ISO 8859-6, ECMA 114    Latin/Arabic    Yes    1       
  12. ISO_8859_7    ISO 8859-7, ECMA 118    Latin/Greek    Yes    1       
  13. ISO_8859_8    ISO 8859-8, ECMA 121    Latin/Hebrew    Yes    1       
  14. JOHAB    JOHAB    Korean (Hangul)    No    1-3       
  15. KOI8    KOI8-R(U)    Cyrillic    Yes    1    KOI8R  
  16. LATIN1    ISO 8859-1, ECMA 94    Western European    Yes    1    ISO88591  
  17. LATIN2    ISO 8859-2, ECMA 94    Central European    Yes    1    ISO88592  
  18. LATIN3    ISO 8859-3, ECMA 94    South European    Yes    1    ISO88593  
  19. LATIN4    ISO 8859-4, ECMA 94    North European    Yes    1    ISO88594  
  20. LATIN5    ISO 8859-9, ECMA 128    Turkish    Yes    1    ISO88599  
  21. LATIN6    ISO 8859-10, ECMA 144    Nordic    Yes    1    ISO885910  
  22. LATIN7    ISO 8859-13    Baltic    Yes    1    ISO885913  
  23. LATIN8    ISO 8859-14    Celtic    Yes    1    ISO885914  
  24. LATIN9    ISO 8859-15    LATIN1 with Euro and accents    Yes    1    ISO885915  
  25. LATIN10    ISO 8859-16, ASRO SR 14111    Romanian    Yes    1    ISO885916  
  26. MULE_INTERNAL    Mule internal code    Multilingual Emacs    Yes    1-4       
  27. SJIS    Shift JIS    Japanese    No    1-2    Mskanji, ShiftJIS, WIN932, Windows932  
  28. SHIFT_JIS_2004    Shift JIS, JIS X 0213    Japanese    No    1-2     
  29. SQL_ASCII    unspecified (see text)    any    Yes    1      
  30. UHC    Unified Hangul Code    Korean    No    1-2    
  31. WIN949, Windows949UTF8    Unicode, 8-bit    all    Yes    1-4    Unicode  
  32. WIN866    Windows CP866    Cyrillic    Yes    1    ALTWIN874     
  33. Windows CP874    Thai    Yes    1       
  34. WIN1250    Windows CP1250    Central European    Yes    1       
  35. WIN1251    Windows CP1251    Cyrillic    Yes    1      
  36. WINWIN1252    Windows CP1252    Western European    Yes    1       
  37. WIN1253    Windows CP1253    Greek    Yes    1       
  38. WIN1254    Windows CP1254    Turkish    Yes    1       
  39. WIN1255    Windows CP1255    Hebrew    Yes    1       
  40. WIN1256    Windows CP1256    Arabic    Yes    1       
  41. WIN1257    Windows CP1257    Baltic    Yes    1       
  42. WIN1258    Windows CP1258    Vietnamese    Yes    1    ABC, TCVN, TCVN5712, VSCII 

常用的簡體中文字符集是UTF8和EUC_CN兩種。

可自動轉(zhuǎn)換字符集<來自文檔>:

  1. Server Character Set Available Client Character Sets  
  2. BIG5 not supported as a server encoding  
  3. EUC_CN EUC_CN, MULE_INTERNAL, UTF8  
  4. EUC_JP EUC_JP, MULE_INTERNAL, SJIS, UTF8  
  5. EUC_KR EUC_KR, MULE_INTERNAL, UTF8  
  6. EUC_TW EUC_TW, BIG5, MULE_INTERNAL, UTF8  
  7. GB18030 not supported as a server encoding  
  8. GBK not supported as a server encoding  
  9. ISO_8859_5 ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN866, WIN1251  
  10. ISO_8859_6 ISO_8859_6, UTF8  
  11. ISO_8859_7 ISO_8859_7, UTF8  
  12. ISO_8859_8 ISO_8859_8, UTF8  
  13. JOHAB JOHAB, UTF8  
  14. KOI8 KOI8, ISO_8859_5, MULE_INTERNAL, UTF8, WIN866, WIN1251  
  15. LATIN1 LATIN1, MULE_INTERNAL, UTF8  
  16. LATIN2 LATIN2, MULE_INTERNAL, UTF8, WIN1250  
  17. LATIN3 LATIN3, MULE_INTERNAL, UTF8  
  18. LATIN4 LATIN4, MULE_INTERNAL, UTF8  
  19. LATIN5 LATIN5, UTF8  
  20. LATIN6 LATIN6, UTF8  
  21. LATIN7 LATIN7, UTF8  
  22. LATIN8 LATIN8, UTF8  
  23. LATIN9 LATIN9, UTF8  
  24. LATIN10 LATIN10, UTF8  
  25. MULE_INTERNAL MULE_INTERNAL, BIG5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8, LATIN1 to LATIN4, SJIS, WIN866, WIN1250, WIN1251  
  26. SJIS not supported as a server encoding  
  27. SQL_ASCII any (no conversion will be performed)  
  28. UHC not supported as a server encoding  
  29. UTF8 all supported encodings  
  30. WIN866 WIN866, ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN1251  
  31. WIN874 WIN874, UTF8  
  32. WIN1250 WIN1250, LATIN2, MULE_INTERNAL, UTF8  
  33. WIN1251 WIN1251, ISO_8859_5, KOI8, MULE_INTERNAL, UTF8, WIN866  
  34. WIN1252 WIN1252, UTF8  
  35. WIN1253 WIN1253, UTF8  
  36. WIN1254 WIN1254, UTF8  
  37. WIN1255 WIN1255, UTF8  
  38. WIN1256 WIN1256, UTF8  
  39. WIN1257 WIN1257, UTF8  
  40. WIN1258 WIN1258, UTF8 

以下針對客戶端與服務(wù)器字符集配置問題作幾個小測試。

測試一:服務(wù)器、客戶端、語言環(huán)境一致的情況

  1. [postgre@iss3984 ~]$ echo $LANG
  2. en_US.UTF-8
  3. [postgre@iss3984 ~]$ psql daduxiong
  4. Welcome to psql 8.3.11 (server 8.3.10), the PostgreSQL interactive terminal.
  5. Type:    
  6. \copyright for distribution terms        
  7. \h for help with SQL commands         
  8. \? for help with psql commands         
  9. \g or terminate with semicolon to execute query       
  10. \q to quitdaduxiong=# \l         
  11. List of databases    
  12.  Name    |  Owner  | Encoding
  13. -----------+---------+---------- 
  14. daduxiong | postgre | UTF8 
  15. postgres  | postgre | UTF8 
  16. template0 | postgre | UTF8 
  17. template1 | postgre | UTF8(4 rows)
  18. daduxiong=# show client_encoding; 
  19. client_encoding----------------- 
  20. UTF8(1 row)daduxiong=# insert into t1 values (1,'中國');
  21. INSERT 0 1
  22. daduxiong=# select * from t1; id |          
  23. name         
  24. ----+------------------------  
  25. 1 | 中國                 (1 row) 

服務(wù)器與客戶端字符集相同,在數(shù)據(jù)錄入時不發(fā)生字符集轉(zhuǎn)換;因語言環(huán)境也相同所以展現(xiàn)不會出現(xiàn)亂碼。

測試二:客戶端與服務(wù)器、語言環(huán)境不一致的情況

  1. daduxiong=# \encoding   
  2. GBKdaduxiong=# show   
  3. client_encoding;   
  4. client_encoding-----------------   
  5. GBK(1 row)  
  6. daduxiong=# insert into t1 values (2,'日本');  
  7. INSERT 0 1daduxiong=# select * from t1;   
  8. id |          name            
  9. ----+-------------------------    
  10. 1 | �й�                     
  11. 2 | 日本                (2 rows) 

客戶端與服務(wù)器的字符集不一致,在數(shù)據(jù)錄入時將發(fā)生字符集轉(zhuǎn)換;當前展現(xiàn)的第二條記錄非亂碼形式是因為客戶端字符集為GBK,在UTF8下同樣出現(xiàn)亂碼,在使用時需要語言環(huán)境進行配置。

測試三:服務(wù)器與客戶端、語言環(huán)境不一致的情況

  1. daduxiong=# \q  
  2. [postgre@iss3984 ~]$ LANG=GBK export LANG  
  3. [postgre@iss3984 ~]$ echo $LANG  
  4. GBK  
  5. [postgre@iss3984 ~]$ psql daduxiong  
  6. Welcome to psql 8.3.11 (server 8.3.10), the PostgreSQL interactive terminal.  
  7. Type:    
  8. \copyright for distribution terms         
  9. \h for help with SQL commands         
  10. \? for help with psql commands         
  11. \g or terminate with semicolon to execute query         
  12. \q to quitdaduxiong=# show client_encoding;   
  13. client_encoding  
  14. -----------------  
  15.  UTF8  
  16. (1 row)  
  17. daduxiong=# \encoding GBK  
  18. daduxiong=# select * from t1;   
  19. id |          name            
  20. ----+-------------------------    
  21. 1 | �й�                     
  22. 2 | 日本                  
  23. (2 rows)  
  24. daduxiong=# insert into t1 values (3,'美國');  
  25. INSERT 0 1daduxiong=# select * from t1;   
  26. id |          name            
  27. ----+-------------------------    
  28. 1 | �й�                     
  29. 2 | 日本                    
  30. 3 | 美國                  
  31. (3 rows)daduxiong=# \q 

客戶端、語言環(huán)境均配置為GBK字符集,在當前環(huán)境下展現(xiàn)的為非亂碼形式,數(shù)據(jù)錄入時將發(fā)生字符集轉(zhuǎn)換。

測試四:服務(wù)器與客戶端、語言環(huán)境恢復一致的情況

  1. [postgre@iss3984 ~]$ LANG=en_US.UTF8 export LANG  
  2. [postgre@iss3984 ~]$ psql daduxiong  
  3. Welcome to psql 8.3.11 (server 8.3.10), the PostgreSQL interactive terminal.  
  4. Type:  \copyright for distribution terms         
  5. \h for help with SQL commands        
  6. \? for help with psql commands         
  7. \g or terminate with semicolon to execute query        
  8. \q to quitdaduxiong=# show client_encoding; client_encoding
  9. -----------------   
  10. UTF8(1 row)  
  11. daduxiong=# select * from t1;   
  12. id |          name            
  13. ----+-------------------------    
  14. 1 | 中國                     
  15. 2 | 鏃ユ湰                    
  16. 3 | 緹庡浗                 
  17.  (3 rows)daduxiong=#  

通過恢復原始的PostgreSQL字符集狀態(tài),所有環(huán)境均為UTF8字符集,此時發(fā)現(xiàn)經(jīng)過字符集轉(zhuǎn)換后的內(nèi)容為亂碼。

原文標題:postgresql 字符集

鏈接:http://www.cnblogs.com/daduxiong/archive/2010/10/14/1851552.html

【編輯推薦】

  1. PostgreSQL新版提高Oracle兼容性 欲與甲骨文試比高?
  2. Sun如何處理PostgreSQL和Java DB?
  3. PostgreSQL 8.2簡介 附下載地址
  4. 簡評MySQL和PostgreSQL優(yōu)劣
  5. 將你的網(wǎng)站從MySQL改為PostgreSQL

 

責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-04-30 10:16:22

Oracle字符集

2011-04-11 10:59:33

Oracle字符集

2011-04-11 11:05:12

Oracle字符集

2020-12-16 06:34:16

MySQL字符集服務(wù)器

2021-03-23 18:21:30

MySQL數(shù)據(jù)庫字符集

2010-06-07 16:09:58

MySQL字符集

2010-06-02 17:59:19

MySQL字符集

2011-05-20 13:24:39

oracle字符集

2009-11-20 16:52:35

Oracle字符集

2010-04-28 17:29:07

Oracle字符集

2009-02-24 10:51:30

2010-06-13 16:17:26

MySQL改變字符集

2011-05-16 13:15:55

MySQL存儲字符集

2010-11-01 15:44:45

DB2字符集

2010-11-23 17:04:54

MySQL字符集

2010-10-09 10:57:22

MySQL默認字符集

2010-04-13 12:56:16

Oracle字符集

2010-10-09 11:12:32

mysql默認字符集

2010-04-13 13:11:34

Oracle漢字顯示

2010-05-17 10:01:09

MySql字符集
點贊
收藏

51CTO技術(shù)棧公眾號