|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ç®å½
æ¬ç« 讨论以ä¸ä¸»é¢ï¼ · ä»ä¹æ¯å符éåæ ¡å¯¹è§åï¼ Â· å¤çº§é»è®¤ç³»ç» · å符éè¯æ³ · ç¸å ³å½æ°åè¿ç® · Unicodeæ¯æ · æ¯ä¸ªå符éåæ ¡å¯¹è§åçå«ä¹ MySQL5.1ä¸çåç¬¦éæ¯æå æ¬å¨MyISAMãMEMORYåInnoDBåå¨å¼æä¸ã åç¬¦éæ¯ä¸å¥ç¬¦å·åç¼ç ãæ ¡å¯¹è§åæ¯å¨å符éå ç¨äºæ¯è¾å符çä¸å¥è§åã让æä»¬ä½¿ç¨ä¸ä¸ªåæ³å符éçä¾åæ¥åºå«æ¸ æ¥ã å设æä»¬æä¸ä¸ªåæ¯è¡¨ä½¿ç¨äºåä¸ªåæ¯ï¼âAâãâBâãâaâãâbâãæä»¬ä¸ºæ¯ä¸ªåæ¯èµäºä¸ä¸ªæ°å¼ï¼âAâ=0ï¼âBâ= 1ï¼âaâ= 2ï¼âbâ= 3ã忝âAâæ¯ä¸ä¸ªç¬¦å·ï¼æ°å0æ¯âAâçç¼ç ï¼è¿åä¸ªåæ¯åå®ä»¬çç¼ç ç»åå¨ä¸èµ·æ¯ä¸ä¸ªå符éã å设æä»¬å¸ææ¯è¾ä¸¤ä¸ªå符串çå¼ï¼âAâåâBâãæ¯è¾çæç®åçæ¹æ³æ¯æ¥æ¾ç¼ç ï¼âAâ为0ï¼âBâ为1ãå 为0 å°äº1ï¼æä»¬å¯ä»¥è¯´âAâå°äºâBâãæä»¬åçä» ä» æ¯å¨æä»¬çå符éä¸åºç¨äºä¸ä¸ª æ ¡å¯¹è§åãæ ¡å¯¹è§åæ¯ä¸å¥è§åï¼å¨è¿ç§æ åµä¸ä» ä» æ¯ä¸å¥è§åï¼ï¼â对ç¼ç è¿è¡æ¯è¾ãâæä»¬ç§°è¿ç§å ¨é¨å¯è½çè§åä¸çæç®åç æ ¡å¯¹è§å为ä¸ä¸ªbinaryï¼äºå ï¼æ ¡å¯¹è§åã 使¯ï¼å¦ææä»¬å¸æå°å忝å大å忝æ¯çä»·çï¼åºè¯¥ææ ·ï¼é£ä¹ï¼æä»¬å°è³å°æä¸¤ä¸ªè§åï¼ï¼1ï¼æå°å忝âaâåâbâè§ä¸ºä¸âAâåâBâçä»·ï¼ï¼2ï¼ç¶åæ¯è¾ç¼ç ãæä»¬ç§°è¿æ¯ä¸ä¸ªå¤§å°å䏿æç æ ¡å¯¹è§åãæ¯äºå æ ¡å¯¹è§å夿ä¸äºã å¨å®é çæ´»ä¸ï¼å¤§å¤æ°å符éæè®¸å¤å符ï¼ä¸ä» ä» æ¯âAâåâBâï¼èæ¯æ´ä¸ªåæ¯è¡¨ï¼ææ¶åæè®¸å¤ç§åæ¯è¡¨ï¼æè ä¸ä¸ªä¸æ¹ç使ç¨ä¸å个å符ç书åç³»ç»ï¼è¿æè®¸å¤ç¹æ®ç¬¦å·åæ ç¹ç¬¦å·ãå¹¶ä¸å¨å®é çæ´»ä¸ï¼å¤§å¤æ° æ ¡å¯¹è§åæè®¸å¤ä¸ªè§åï¼ä¸ä» ä» æ¯å¤§å°å䏿æï¼è¿å æ¬éé³ç¬¦ä¸ææï¼âéé³ç¬¦â æ¯éå±äºä¸ä¸ªåæ¯ç符å·ï¼è±¡å¾·è¯çâÃâ符å·ï¼åå¤åèæ å°ï¼ä¾å¦ï¼ä½ä¸ºè§åâÃâ=âOEâå°±æ¯ä¸¤ä¸ªå¾·è¯ æ ¡å¯¹è§åçä¸ç§ï¼ã MySQL5.1è½å¤åè¿äºäºæ ï¼ Â· 使ç¨å¤ç§åç¬¦éæ¥åå¨å符串 · 使ç¨å¤ç§æ ¡å¯¹è§åæ¥æ¯è¾å符串 · å¨åä¸å°æå¡å¨ãåä¸ä¸ªæ°æ®åºæçè³å¨åä¸ä¸ªè¡¨ä¸ä½¿ç¨ä¸ååç¬¦éææ ¡å¯¹è§åæ¥æ··åå符串 · å 许å®ä¹ä»»ä½çº§å«çå符éåæ ¡å¯¹è§å å¨è¿äºæ¹é¢ï¼MySQL5.1ä¸ä» æ¯MySQL4.1以åççæ¬çµæ´»å¾å¤ï¼è䏿¯å ¶å®å¤§å¤æ°æ°æ®åºç®¡çç³»ç»è¶ å许å¤ã使¯ï¼ä¸ºäºææå°ä½¿ç¨è¿äºåè½ï¼ä½ éè¦äºè§£åªäºå符éå æ ¡å¯¹è§åæ¯å¯ç¨çï¼ææ ·æ¹åé»è®¤å¼ï¼ä»¥åå®ä»¬ææ ·å½±åå符æä½ç¬¦ååç¬¦ä¸²å½æ°çè¡ä¸ºã MySQLæå¡å¨è½å¤æ¯æå¤ç§å符éãå¯ä»¥ä½¿ç¨SHOW CHARACTER SETè¯å¥ååºå¯ç¨çå符éï¼ mysql> SHOW CHARACTER SET; +----------+-----------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
...ï¼å®æ´å表åè§10.10èï¼âMySQLæ¯æçå符éåæ ¡å¯¹âãï¼ ä»»ä½ä¸ä¸ªç»å®çå符éè³å°æä¸ä¸ªæ ¡å¯¹è§åãå®å¯è½æå ä¸ªæ ¡å¯¹è§åã è¦æ³ååºä¸ä¸ªå符éçæ ¡å¯¹è§åï¼ä½¿ç¨SHOW COLLATIONè¯å¥ãä¾å¦ï¼è¦æ³æ¥çlatin1ï¼â西欧ISO-8859-1âï¼å符éç æ ¡å¯¹è§åï¼ä½¿ç¨ä¸é¢çè¯å¥æ¥æ¾é£äºåå以latin1å¼å¤´ç æ ¡å¯¹è§åï¼ mysql> SHOW COLLATION LIKE 'latin1%'; +---------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+---------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | | 0 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 1 |
| latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+---------------------+---------+----+---------+----------+---------+latin1æ ¡å¯¹è§åæä¸é¢çå«ä¹ï¼
æ ¡å¯¹è§åä¸è¬æè¿äºç¹å¾ï¼ · 两个ä¸åçå符éä¸è½æç¸åçæ ¡å¯¹è§åã · æ¯ä¸ªå符éæä¸ä¸ªé»è®¤æ ¡å¯¹è§åãä¾å¦ï¼latin1é»è®¤æ ¡å¯¹è§åæ¯latin1_swedish_ciã · å卿 ¡å¯¹è§åå½å约å®ï¼å®ä»¬ä»¥å ¶ç¸å ³çå符éåå¼å§ï¼éå¸¸å æ¬ä¸ä¸ªè¯è¨åï¼å¹¶ä¸ä»¥_ciï¼å¤§å°å䏿æï¼ã_csï¼å¤§å°åææï¼æ_binï¼äºå ï¼ç»æã
MySQLæå¡å¨æä¸ä¸ªæå¡å¨å符éåä¸ä¸ªæå¡å¨æ ¡å¯¹è§åï¼å®ä»¬åä¸è½è®¾ç½®ä¸ºç©ºã MySQLæç §å¦ä¸æ¹æ³ç¡®å®æå¡å¨å符éåæå¡å¨æ ¡å¯¹è§åï¼ Â· 彿å¡å¨å¯å¨æ¶æ ¹æ®ææçé项设置 · æ ¹æ®è¿è¡æ¶ç设å®å¼ 卿å¡å¨çº§å«ï¼ç¡®å®æ¹æ³å¾ç®åãå½å¯å¨mysqldæ¶ï¼æ ¹æ®ä½¿ç¨çåå§é项设置æ¥ç¡®å®æå¡å¨å符éå æ ¡å¯¹è§åãå¯ä»¥ä½¿ç¨--default-character-set设置å符éï¼å¹¶ä¸å¯ä»¥å¨å符éåé¢ä¸º æ ¡å¯¹è§åæ·»å --default-collationãå¦ææ²¡ææå®ä¸ä¸ªå符éï¼é£å°±ä¸--default-character-set=latin1ç¸åãå¦æä½ ä» æå®äºä¸ä¸ªå符éï¼ä¾å¦ï¼latin1ï¼ï¼ä½æ¯æ²¡ææå®ä¸ä¸ª æ ¡å¯¹è§åï¼é£å°±ä¸--default-charset=latin1 --default-collation=latin1_swedish_ciç¸åï¼å 为latin1_swedish_ciæ¯latin1çé»è®¤æ ¡å¯¹è§åãå æ¤ï¼ä»¥ä¸ä¸ä¸ªå½ä»¤æç¸åçææï¼ shell> mysqld shell> mysqld --default-character-set=latin1 shell> mysqld --default-character-set=latin1 \ --default-collation=latin1_swedish_ci æ´æ¹è®¾å®å¼çä¸ä¸ªæ¹æ³æ¯éè¿éæ°ç¼è¯ã妿叿å¨ä»æºç¨åºæå»ºæ¶æ´æ¹é»è®¤æå¡å¨å符éåæ ¡å¯¹è§åï¼ä½¿ç¨ï¼--with-charsetå--with-collationä½ä¸ºconfigureçåéãä¾å¦ï¼ shell> ./configure --with-charset=latin1 æè ï¼ shell> ./configure --with-charset=latin1 \ --with-collation=latin1_german1_ci mysqldåconfigureé½éªè¯å符é/æ ¡å¯¹è§åç»åæ¯å¦ææãå¦ææ æï¼æ¯ä¸ªç¨åºé½æ¾ç¤ºä¸ä¸ªé误信æ¯ï¼ç¶åç»æ¢ã å½åçæå¡å¨å符éåæ ¡å¯¹è§åå¯ä»¥ç¨ä½character_set_serveråcollation_serverç³»ç»åéçå¼ãå¨è¿è¡æ¶è½å¤æ¹åè¿äºåéçå¼ã 10.3.2. æ°æ®åºå符éåæ ¡å¯¹
æ¯ä¸ä¸ªæ°æ®åºæä¸ä¸ªæ°æ®åºå符éåä¸ä¸ªæ°æ®åºæ ¡å¯¹è§åï¼å®ä¸è½å¤ä¸ºç©ºãCREATE
DATABASEåALTER
DATABASEè¯å¥æä¸ä¸ªå¯éçå奿¥æå®æ°æ®åºå符éåæ ¡å¯¹è§åï¼ CREATE DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] ä¾å¦ï¼ CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;MySQLè¿æ ·éæ©æ°æ®åºå符éåæ°æ®åºæ ¡å¯¹è§åï¼ Â· 妿æå®äºCHARACTER SET XåCOLLATE Yï¼é£ä¹éç¨å符éXåæ ¡å¯¹è§åYã · 妿æå®äºCHARACTER SET Xèæ²¡ææå®COLLATE Yï¼é£ä¹éç¨CHARACTER SET XåCHARACTER SET Xçé»è®¤æ ¡å¯¹è§åã · å¦åï¼éç¨æå¡å¨å符éåæå¡å¨æ ¡å¯¹è§åã MySQLçCREATE DATABASE ... DEFAULT CHARACTER SET ...è¯æ³ä¸æ åSQLçCREATE SCHEMA ... CHARACTER SET ...è¯æ³ç±»ä¼¼ãå æ¤ï¼å¯ä»¥å¨åä¸ä¸ªMySQLæå¡å¨ä¸å建使ç¨ä¸åå符éå æ ¡å¯¹è§åçæ°æ®åºã 妿å¨CREATE TABLEè¯å¥ä¸æ²¡ææå®è¡¨å符éåæ ¡å¯¹è§åï¼åä½¿ç¨æ°æ®åºå符éåæ ¡å¯¹è§åä½ä¸ºé»è®¤å¼ãå®ä»¬æ²¡æå ¶å®ç®çã é»è®¤æ°æ®åºçå符éåæ ¡å¯¹è§åå¯ä»¥ç¨ä½character_set_databaseå collation_databaseç³»ç»åéãæ è®ºä½æ¶é»è®¤æ°æ®åºæ´æ¹äºï¼æå¡å¨é½è®¾ç½®è¿ä¸¤ä¸ªåéçå¼ãå¦ææ²¡æ é»è®¤æ°æ®åºï¼è¿ä¸¤ä¸ªåéä¸ç¸åºçæå¡å¨çº§å«çåéï¼character_set_serveråcollation_serverï¼å ·æç¸åçå¼ã 10.3.3. 表å符éåæ ¡å¯¹
æ¯ä¸ä¸ªè¡¨æä¸ä¸ªè¡¨å符éåä¸ä¸ªæ ¡å¯¹è§åï¼å®ä¸è½ä¸ºç©ºã为æå®è¡¨å符éåæ ¡å¯¹è§åï¼CREATE
TABLE åALTER
TABLEè¯å¥æä¸ä¸ªå¯éçåå¥ï¼ CREATE TABLE tbl_name (column_list) [DEFAULT CHARACTER SET charset_name [COLLATE collation_name]]
ALTER TABLE tbl_name [DEFAULT CHARACTER SET charset_name] [COLLATE collation_name] ä¾å¦ï¼ CREATE TABLE t1 ( ... )DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci; MySQLæç §ä¸é¢çæ¹å¼éæ©è¡¨å符éå æ ¡å¯¹è§åï¼ Â· 妿æå®äºCHARACTER SET XåCOLLATE Yï¼é£ä¹éç¨CHARACTER SET XåCOLLATE Yã · 妿æå®äºCHARACTER SET Xèæ²¡ææå®COLLATE Yï¼é£ä¹éç¨CHARACTER SET XåCHARACTER SET Xçé»è®¤æ ¡å¯¹è§åã · å¦åï¼éç¨æå¡å¨å符éåæå¡å¨æ ¡å¯¹è§åã 妿å¨åå®ä¹ä¸æ²¡ææå®åå符éåæ ¡å¯¹è§åï¼åé»è®¤ä½¿ç¨è¡¨å符éåæ ¡å¯¹è§åã表å符éåæ ¡å¯¹è§åæ¯MySQLçæ©å±;卿 åSQL䏿²¡æã 10.3.4. åå符éåæ ¡å¯¹
æ¯ä¸ä¸ªâå符âåï¼å³ï¼CHARãVARCHARæTEXTç±»åçåï¼æä¸ä¸ªåå符éåä¸ä¸ªå
æ ¡å¯¹è§åï¼å®ä¸è½ä¸ºç©ºãåå®ä¹è¯æ³æä¸ä¸ªå¯éå奿¥æå®åå符éåæ ¡å¯¹è§åï¼ col_name {CHAR | VARCHAR | TEXT} (col_length) [CHARACTER SET charset_name [COLLATE collation_name]] ä¾å¦ï¼ CREATE TABLE Table1 ( column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci ); MySQLæç §ä¸é¢çæ¹å¼éæ©åå符éåæ ¡å¯¹è§åï¼ Â· 妿æå®äºCHARACTER SET XåCOLLATE Yï¼é£ä¹éç¨CHARACTER SET XåCOLLATE Yã · 妿æå®äºCHARACTER SET Xèæ²¡ææå®COLLATE Yï¼é£ä¹éç¨CHARACTER SET XåCHARACTER SET Xçé»è®¤æ ¡å¯¹è§åã · å¦åï¼éç¨è¡¨å符éåæå¡å¨æ ¡å¯¹è§åã CHARACTER SETåCOLLATEå奿¯æ åçSQLã 10.3.5. å符éåæ ¡å¯¹åé 示ä¾ä»¥ä¸ä¾åæ¾ç¤ºäºMySQLææ ·ç¡®å®é»è®¤å符éåæ ¡å¯¹è§åã 示ä¾1ï¼è¡¨ååå®ä¹ CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;å¨è¿éæä»¬æä¸ä¸ªå使ç¨latin1å符éålatin1_german1_ciæ ¡å¯¹è§åãæ¯æ¾å¼çå®ä¹ï¼å æ¤ç®åæäºãéè¦æ³¨æçæ¯ï¼å¨ä¸ä¸ªlatin2表ä¸åå¨ä¸ä¸ªlatin1åä¸ä¼åå¨é®é¢ã 示ä¾2ï¼è¡¨ååå®ä¹ CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;è¿æ¬¡æä»¬æä¸ä¸ªå使ç¨latin1å符éåä¸ä¸ªé»è®¤æ ¡å¯¹è§åãå°½ç®¡å®æ¾å¾èªç¶ï¼é»è®¤æ ¡å¯¹è§åå´ä¸æ¯è¡¨çº§ãç¸åï¼å 为latin1çé»è®¤æ ¡å¯¹è§åæ»æ¯latin1_swedish_ciï¼åc1æä¸ä¸ªæ ¡å¯¹è§ålatin1_swedish_ciï¼è䏿¯latin1_danish_ciï¼ã 示ä¾3ï¼è¡¨ååå®ä¹ CREATE TABLE t1
(
c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;æä»¬æä¸ä¸ªå使ç¨ä¸ä¸ªé»è®¤å符éåä¸ä¸ªé»è®¤æ ¡å¯¹è§åãå¨è¿ç§æ åµä¸ï¼MySQLæ¥æ¾è¡¨çº§å«æ¥ç¡®å®åå符éå æ ¡å¯¹è§åãå æ¤ï¼åc1çåç¬¦éæ¯latin1ï¼å®ç æ ¡å¯¹è§åæ¯latin1_danish_ciã 示ä¾4ï¼æ°æ®åºã表ååå®ä¹ CREATE DATABASE d1
DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_ci;
USE d1;
CREATE TABLE t1
(
c1 CHAR(10)
);æä»¬å建äºä¸ä¸ªæ²¡ææå®å符éåæ ¡å¯¹è§åçåãæä»¬ä¹æ²¡ææå®è¡¨çº§å符éåæ ¡å¯¹è§åãå¨è¿ç§æ åµä¸ï¼MySQLæ¥æ¾æ°æ®åºçº§çç¸å ³è®¾ç½®ãï¼æ°æ®åºç设置å为表ç设置ï¼å ¶åå为åç设置ãï¼å æ¤ï¼åc1çå符é为æ¯latin2ï¼å®ç æ ¡å¯¹è§åæ¯latin2_czech_ciã
ä¸äºå符éåæ ¡å¯¹è§åç³»ç»åéä¸å®¢æ·ç«¯åæå¡å¨çäº¤äºæå
³ãå¨åé¢çç« èä¸å·²ç»æå°è¿é¨åå
å®¹ï¼ Â· æå¡å¨å符éåæ ¡å¯¹è§åå¯ä»¥ç¨ä½character_set_serveråcollation_serveråéçå¼ã · é»è®¤æ°æ®åºçå符éåæ ¡å¯¹è§åå¯ä»¥ç¨ä½character_set_databaseåcollation_databaseåéçå¼ã å¨å®¢æ·ç«¯åæå¡å¨çè¿æ¥å¤çä¸ä¹æ¶åäºå符éåæ ¡å¯¹è§ååéãæ¯ä¸ä¸ªå®¢æ·ç«¯æä¸ä¸ªè¿æ¥ç¸å ³çå符éåæ ¡å¯¹è§ååéã èèä»ä¹æ¯ä¸ä¸ªâè¿æ¥âï¼å®æ¯è¿æ¥æå¡å¨æ¶æä½çäºæ ã客æ·ç«¯åéSQLè¯å¥ï¼ä¾å¦æ¥è¯¢ï¼éè¿è¿æ¥åéå°æå¡å¨ãæå¡å¨éè¿è¿æ¥åéååºç»å®¢æ·ç«¯ï¼ä¾å¦ç»æéã对äºå®¢æ·ç«¯è¿æ¥ï¼è¿æ ·ä¼å¯¼è´ä¸äºå ³äºè¿æ¥çå符éå æ ¡å¯¹è§åçé®é¢ï¼è¿äºé®é¢åè½å¤éè¿ç³»ç»åéæ¥è§£å³ï¼ · 彿¥è¯¢ç¦»å¼å®¢æ·ç«¯åï¼å¨æ¥è¯¢ä¸ä½¿ç¨åªç§å符éï¼ æå¡å¨ä½¿ç¨character_set_clientåéä½ä¸ºå®¢æ·ç«¯åéçæ¥è¯¢ä¸ä½¿ç¨çå符éã · æå¡å¨æ¥æ¶å°æ¥è¯¢ååºè¯¥è½¬æ¢ä¸ºåªç§å符éï¼ è½¬æ¢æ¶ï¼æå¡å¨ä½¿ç¨character_set_connectionåcollation_connectionç³»ç»åéãå®å°å®¢æ·ç«¯åéçæ¥è¯¢ä»character_set_clientç³»ç»åé转æ¢å°character_set_connectionï¼é¤éå符串æåå ·æè±¡_latin1æ_utf8çå¼ä»è¯ï¼ãcollation_connection对æ¯è¾æåå符串æ¯éè¦çã对äºåå¼çå符串æ¯è¾ï¼å®ä¸éè¦ï¼å 为åå ·ææ´é«ç æ ¡å¯¹è§åä¼å 级ã · æå¡å¨åéç»æéæè¿åé误信æ¯å°å®¢æ·ç«¯ä¹ååºè¯¥è½¬æ¢ä¸ºåªç§å符éï¼ character_set_resultsåéæç¤ºæå¡å¨è¿åæ¥è¯¢ç»æå°å®¢æ·ç«¯ä½¿ç¨çå符éãå æ¬ç»ææ°æ®ï¼ä¾å¦åå¼åç»æå æ°æ®ï¼å¦ååï¼ã ä½ è½å¤è°æ´è¿äºåéçè®¾ç½®ï¼æå¯ä»¥ä¾èµé»è®¤å¼ï¼è¿æ ·ï¼ä½ å¯ä»¥è·³è¿æ¬ç« ï¼ã æä¸¤ä¸ªè¯å¥å½±åè¿æ¥å符éï¼ SET NAMES 'charset_name' SET CHARACTER SET charset_name SET NAMESæ¾ç¤ºå®¢æ·ç«¯åéçSQLè¯å¥ä¸ä½¿ç¨ä»ä¹å符éãå æ¤ï¼SET NAMES 'cp1251'è¯å¥åè¯æå¡å¨âå°æ¥ä»è¿ä¸ªå®¢æ·ç«¯ä¼ æ¥çä¿¡æ¯éç¨å符écp1251âãå®è¿ä¸ºæå¡å¨åéå客æ·ç«¯çç»ææå®äºå符éãï¼ä¾å¦ï¼å¦æä½ 使ç¨ä¸ä¸ªSELECTè¯å¥ï¼å®è¡¨ç¤ºåå¼ä½¿ç¨äºä»ä¹å符éãï¼ SET NAMES 'x'è¯å¥ä¸è¿ä¸ä¸ªè¯å¥çä»·ï¼ mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x; å°x设置为character_set_connectionä¹å°±è®¾ç½®äºcollation_connectionæ¯xçé»è®¤æ ¡å¯¹è§åã SET CHARACTER SETè¯å¥æ¯ç±»ä¼¼çï¼ä½æ¯ä¸º é»è®¤æ°æ®åºè®¾ç½®è¿æ¥å符éåæ ¡å¯¹è§åãSET CHARACTER SET xè¯å¥ä¸è¿ä¸ä¸ªè¯å¥çä»·ï¼ mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET collation_connection = @@collation_database; å½ä¸ä¸ªå®¢æ·ç«¯è¿æ¥æ¶ï¼å®åæå¡å¨åéå¸æä½¿ç¨çå符éåç§°ãæå¡å¨ä¸ºé£ä¸ªå符é设置character_set_clientãcharacter_set_resultså character_set_connectionåéãï¼å®é ä¸ï¼æå¡å¨ä¸ºä½¿ç¨è¯¥åç¬¦éæ§è¡ä¸ä¸ªSET NAMESæä½ãï¼ å¯¹äºmysql客æ·ç«¯ï¼å¦æä½ å¸æä½¿ç¨ä¸é»è®¤å符éä¸åçå符éï¼ä¸éè¦æ¯æ¬¡å¯å¨æ¶æ§è¡SET NAMESè¯å¥ãå¯ä»¥å¨mysqlè¯å¥è¡ä¸æè é项æä»¶ä¸æ·»å ä¸ä¸ª--default-character-seté项设置ãä¾å¦ï¼ä½ æ¯æ¬¡è¿è¡mysqlæ¶ï¼ä»¥ä¸çé项æä»¶è®¾ç½®æä¸ä¸ªå符éåéä¿®æ¹ä¸ºkoi8rï¼ [mysql] default-character-set=koi8r ä¾å¦ï¼å设column1å®ä¹ä¸ºCHAR(5) CHARACTER SET latin2ãå¦ææ²¡æè®¾å®SET NAMESæSET CHARACTER SETï¼é£ä¹å¯¹äºSELECT column1 FROM tï¼å½è¿æ¥åï¼æå¡å¨ä½¿ç¨å®¢æ·ç«¯æå®çå符éè¿ååcolumn1çææå¼ãå¦ä¸æ¹é¢ï¼å¦æä½ 设å®SET NAMES 'latin1'æSET CHARACTER SET latin1ï¼é£ä¹åéç»æä¹åï¼æå¡å¨è½¬æ¢latin2å¼å°latin1ã转æ¢å¯è½ä¼ä¸¢å¤±é£äºä¸å±äºä¸¤ç§å符éçå符ã 妿ä¸å¸ææå¡å¨æ§è¡ä»»ä½è½¬æ¢ï¼è®¾ç½®character_set_results为NULLï¼ mysql> SET character_set_results = NULL; 10.3.7. å符串æåå符éåæ ¡å¯¹
æ¯ä¸å符串å符æåæä¸ä¸ªå符éåä¸ä¸ªæ ¡å¯¹è§åï¼å®ä¸è½ä¸ºç©ºã ä¸ä¸ªå符串æåå¯è½æä¸ä¸ªå¯éçå符éå¼ä»è¯åCOLLATEåå¥ï¼ [_charset_name]'string' [COLLATE collation_name] ä¾å¦ï¼ SELECT 'string'; SELECT _latin1'string'; SELECT _latin1'string' COLLATE latin1_danish_ci; 对äºç®åçè¯å¥SELECT 'string'ï¼å符串使ç¨ç±character_set_connectionåcollation_connectionç³»ç»åéå®ä¹çå符éå æ ¡å¯¹è§åã _charset_nameè¡¨è¾¾å¼æ£å¼ç§°åä¸ä¸ªå¼ä»è¯ãå®åè¯è§£æç¨åºï¼âåé¢å°è¦åºç°çå符串使ç¨å符éXãâå 为以åäººä»¬å¯¹æ¤æå°å°æï¼æä»¬å¼ºè°å¼ä»è¯ä¸å¯¼è´ä»»ä½è½¬æ¢; å®ä» æ¯ä¸ä¸ªç¬¦å·ï¼ä¸æ¹åå符串çå¼ãå¼ä»è¯å¨æ ååå è¿å¶åæ¯åæ°ååå è¿å¶ç¬¦å·ï¼x'literal'å 0xnnnnï¼ä¸æ¯åæ³çï¼ä»¥åï¼ï¼å½å¨ä¸ä¸ªç¼ç¨è¯è¨æ¥å£ä¸ä½¿ç¨é¢å¤ççè¯å¥æ¶è¿è¡åæ°æ¿æ¢ï¼ã ä¾å¦ï¼ SELECT _latin1 x'AABBCC';
SELECT _latin1 0xAABBCC;
SELECT _latin1 ?;MySQLè¿æ ·ç¡®å®ä¸ä¸ªæåå符éåæ ¡å¯¹è§åï¼ Â· 妿æå®äºCHARACTER SET XåCOLLATE Yï¼é£ä¹ä½¿ç¨CHARACTER SET XåCOLLATE Yã · 妿æå®äºCHARACTER SET Xèæ²¡ææå®COLLATE Yï¼é£ä¹ä½¿ç¨CHARACTER SET XåCHARACTER SET Xçé»è®¤æ ¡å¯¹è§åã · å¦åï¼ä½¿ç¨éè¿character_set_connection å collation_connectionç³»ç»åéç»åºçå符éå æ ¡å¯¹è§åã ä¾å¦ï¼ · 使ç¨latin1å符éålatin1_german1_ciæ ¡å¯¹è§åçåç¬¦ä¸²ï¼ Â· SELECT _latin1'Mü ller' COLLATE latin1_german1_ci; · 使ç¨latin1å符éåå ¶é»è®¤æ ¡å¯¹è§åçå符串ï¼å³ï¼latin1_swedish_ciï¼ï¼ · SELECT _latin1'Mü ller'; · 使ç¨è¿æ¥é»è®¤å符éåæ ¡å¯¹è§åçåç¬¦ä¸²ï¼ Â· SELECT 'Mü ller'; å符éå¼ä»è¯åCOLLATEå奿¯æ ¹æ®æ åSQLè§èå®ç°çã 10.3.8. å¨SQLè¯å¥ä¸ä½¿ç¨COLLATE
COLLATEå奿è¾é«çä¼å 级ï¼é«äº||ï¼ï¼å æ¤ä¸é¢ä¸¤ä¸ªè¡¨è¾¾å¼æ¯çä»·çï¼ x || y COLLATE z
x || (y COLLATE z)BINARYæä½ç¬¦æ¯COLLATEåå¥çä¸ä¸ªé记符ãBINARY
'x'çä»·ä¸'x'
COLLATE yï¼è¿éyæ¯å符é'x'äºå
æ ¡å¯¹è§åçååãæ¯ä¸ä¸ªå符éæä¸ä¸ªäºå
æ ¡å¯¹è§åãä¾å¦ï¼latin1å符éçäºå
æ ¡å¯¹è§åæ¯latin1_binï¼å æ¤ï¼å¦æåaæ¯å符élatin1ï¼ä»¥ä¸ä¸¤ä¸ªè¯å¥æç¸åææï¼ SELECT * FROM t1 ORDER BY BINARY a;
SELECT * FROM t1 ORDER BY a COLLATE latin1_bin;10.3.11. æ ¡å¯¹ç¡®å®è¾ä¸ºå¤æçä¸äºç¹æ®æ åµå¨ç»å¤§å¤æ°æ¥è¯¢ä¸ï¼MySQL使ç¨åªç§æ ¡å¯¹è§åè¿è¡æ¯è¾æ¯å¾æ¾ç¶çãä¾å¦ï¼å¨ä¸åæ åµä¸ï¼æ ¡å¯¹è§åææ¾çæ¯âåxçåæ ¡å¯¹è§åâï¼ SELECT x FROM T ORDER BY x;
SELECT x FROM T WHERE x = x;
SELECT DISTINCT x FROM T;使¯ï¼å½æ¶åå¤ä¸ªæä½æ°æ¶ï¼å¯è½ä¸æç¡®ãä¾å¦ï¼ SELECT x FROM T WHERE x = 'Y';è¿ä¸ªæ¥è¯¢åºè¯¥ä½¿ç¨åxç æ ¡å¯¹è§åï¼è¿æ¯å符串æå'Y'ç æ ¡å¯¹è§åï¼ æ ååSQL使ç¨âå¯å缩æ§âè§åè§£å³è¿ç§é®é¢ãåºæ¬ä¸ï¼è¿ä¸ªæææ¯ï¼æ¢ç¶xå'Y'齿 æ ¡å¯¹è§åï¼åªä¸ªæ ¡å¯¹è§åä¼å ï¼è¿å¯è½æ¯è¾é¾è§£å³ï¼ä½æ¯ä»¥ä¸è§åéå大夿°æ åµï¼ · ä¸ä¸ªå¤å¨çCOLLATEåå¥å¯åç¼©æ§æ¯0ï¼æ ¹æ¬ä¸è½å缩ãï¼ Â· 使ç¨ä¸åæ ¡å¯¹è§åç两个åç¬¦ä¸²è¿æ¥çå¯åç¼©æ§æ¯1ã · åæ ¡å¯¹è§åçå¯åç¼©æ§æ¯2ã · âç³»ç»å¸¸æ°âï¼å¦USER()æVERSION()彿°è¿åçå符串ï¼å¯åç¼©æ§æ¯3ã · æåè§åçå¯åç¼©æ§æ¯4ã · NULLæä»NULLæ´¾çç表达å¼çå¯åç¼©æ§æ¯ 5ã ä¸è¿°å¯å缩æ§å¼æ¯MySQL5.1å½åæç¨çã è¿æ ·ä¸è¿°è§åå¯ä»¥æ¨¡ç³è§£å³ï¼ · ä½¿ç¨æä½çå¯å缩æ§å¼çæ ¡å¯¹è§åã · 妿䏤侧æç¸åçå¯å缩æ§ï¼é£ä¹å¦ææ ¡å¯¹è§åä¸åååçé误ã ä¾å¦ï¼
使ç¨COERCIBILITYï¼ï¼å½æ°ç¡®å®ä¸ä¸ªå符串表达å¼çå¯å缩æ§ï¼ mysql> SELECT COERCIBILITY('A' COLLATE latin1_swedish_ci); -> 0
mysql> SELECT COERCIBILITY(VERSION()); -> 3
mysql> SELECT COERCIBILITY('A'); -> 4è§12.9.3èï¼âä¿¡æ¯å½æ°âã æ²¡æç³»ç»å¸¸æ°æå¯å¿½ç¥çå缩æ§ã彿°å¦USER()çå¯åç¼©æ§æ¯2è䏿¯3ï¼æåçå¯åç¼©æ§æ¯3è䏿¯4ã è¯·æ³¨ææ¯ä¸ªå符éæä¸ä¸ªæå¤ä¸ªæ ¡å¯¹è§åï¼å¹¶ä¸æ¯ä¸ªæ ¡å¯¹è§ååªè½å±äºä¸ä¸ªå符éãå æ¤ï¼ä»¥ä¸è¯å¥ä¼äº§çä¸ä¸ªé误信æ¯ï¼å ä¸ºæ ¡å¯¹è§ålatin2_bin对äºå符élatin1éæ³ï¼ mysql> SELECT _latin1 'x' COLLATE latin2_bin; ERROR 1251: COLLATION 'latin2_bin' is not valid for CHARACTER SET 'latin1' å设表Tä¸çåXæè¿äºlatin1åå¼ï¼ Muffler Müller MX Systems MySQL å设使ç¨ä¸é¢çè¯å¥è·ååå¼ï¼ SELECT X FROM T ORDER BY X COLLATE collation_name; 使ç¨ä¸åæ ¡å¯¹è§åçåå¼ç»ææåºè§ä¸è¡¨ï¼
æ¬è¡¨æ¾ç¤ºäºæä»¬å¨ORDER BYåå¥ä¸ä½¿ç¨ä¸åææ ¡å¯¹è§åçææç示ä¾ã卿¬ä¾ä¸å¯¼è´ä¸åæåºçå符æ¯ä¸é¢å¸¦æä¸¤ä¸ªåç¹çUï¼Ã¼ï¼ï¼å®å¨å¾·è¯ä¸åé³ä¸º"U-umlaut"ã · 第ä¸åæ¾ç¤ºçæ¯ä½¿ç¨çå ¸/è¬å °æ ¡å¯¹è§åçSELECTè¯å¥çç»æï¼å®è¢«ç§°ä½U-umlaut使ç¨Yæåºã · 第äºåæ¾ç¤ºçæ¯ä½¿ç¨å¾·è¯DIN-1æ ¡å¯¹è§åçSELECTè¯å¥çç»æï¼å®è¢«ç§°ä½U-umlaut使ç¨Uæåºã · 第ä¸åæ¾ç¤ºçæ¯ä½¿ç¨å¾·è¯DIN-2æ ¡å¯¹è§åçSELECTè¯å¥çç»æï¼å®è¢«ç§°ä½U-umlaut使ç¨UEæåºã MySQLä¸æè®¸å¤æä½ç¬¦å彿°å¯ä»¥è¿ååç¬¦ä¸²ãæ¬èåçè¿ä¸ªé®é¢ï¼è¿åçå符串使ç¨ä»ä¹å符éå
æ ¡å¯¹è§åï¼ å¯¹äºç®åç彿°ï¼å³æ¥æ¶å符串è¾å ¥ç¶åè¿åä¸ä¸ªåç¬¦ä¸²ç»æä½ä¸ºè¾åºç彿°ï¼è¾åºçå符éåæ ¡å¯¹è§åä¸åå§è¾å ¥çç¸åãä¾å¦ï¼UPPERï¼Xï¼è¿åä¸ä¸ªå符串ï¼å ¶åç¬¦å æ ¡å¯¹è§åä¸Xç¸åã类似ç彿°è¿æINSTR()ãLCASE()ãLOWER()ãLTRIM()ãMID()ãREPEAT()ãREPLACE()ãREVERSE()ãRIGHT()ãRPAD()ãRTRIM()ãSOUNDEX()ãSUBSTRING()ãTRIM()ãUCASE()åUPPER()ãï¼è¿éè¦æ³¨æï¼REPLACE()彿°ä¸åäºå ¶å®å½æ°ï¼å®æ»æ¯å¿½ç¥è¾å ¥åç¬¦ä¸²ç æ ¡å¯¹è§åï¼å¹¶ä¸è¿è¡å¤§å°å䏿æçæ¯è¾ãï¼ å¯¹äºåå¹¶å¤ä¸ªå符串è¾å ¥å¹¶ä¸è¿åå个å符串è¾åºçè¿ç®ï¼åºç¨æ åSQLâèåè§åâï¼ Â· 妿å卿¾å¼çæ ¡å¯¹è§åXï¼é£ä¹ä½¿ç¨Xã · 妿å卿¾å¼çæ ¡å¯¹è§åXåYï¼é£ä¹äº§çä¸ä¸ªé误ã · å¦åï¼å¦æå ¨é¨æ ¡å¯¹è§åæ¯Xï¼é£ä¹ä½¿ç¨Xã · å ¶å®æ åµï¼ç»ææ²¡ææ ¡å¯¹è§åã ä¾å¦ï¼ä½¿ç¨CASE ... WHEN a THEN b WHEN b THEN c COLLATE X ENDãç»ææ ¡å¯¹è§åæ¯Xã对äºCASEãUNIONã||ãCONCAT()ãELT()ãGREATEST()ãIF()åLEAST()æ åµç¸åã 对äºè½¬æ¢ä¸ºåç¬¦æ°æ®çè¿ç®ï¼ä»è¿ç®å¾å°çç»æå符串çå符éåæ ¡å¯¹è§åç±character_set_connectionåcollation_connectionç³»ç»åéå®ä¹ãè¿éç¨äºCAST()ãCHAR()ãCONV()ãFORMAT()ãHEX()åSPACE()彿°ã 10.4.2. CONVERT()
CONVERTï¼ï¼æä¾ä¸ä¸ªå¨ä¸åå符éä¹é´è½¬æ¢æ°æ®çæ¹æ³ãè¯æ³æ¯ï¼ CONVERT(expr USING transcoding_name) å¨ MySQLä¸ï¼è½¬æ¢ä»£ç åä¸ç¸åºçå符éåç¸åã ä¾åï¼ SELECT CONVERT(_latin1'Müller' USING utf8); INSERT INTO utf8table (utf8column)
SELECT CONVERT(latin1field USING utf8) FROM latin1table;CONVERT(... USING ...)æ ¹æ®æ åSQLè§è宿½ã å¨ä¼ ç»SQL模å¼ä¸ï¼å¦æä½ 转æ¢ä¸ä¸ªâ0âæ¥æåç¬¦ä¸²å°æ¥æç±»åï¼CONVERTï¼ï¼å½æ°è¿åNULLãå¨MySQL5.1ä¸è¿äº§ç䏿¡è¦åã 10.4.3. CAST()
ä½ ä¹å¯ä»¥ä½¿ç¨CAST()彿°å°ä¸ä¸ªå符串转æ¢å°ä¸ä¸ªä¸åçå符éãè¯æ³æ¯ï¼ CAST(character_string AS character_data_type CHARACTER SET charset_name) ä¾å¦ï¼ SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8); å¦æä½¿ç¨CAST()æ¶æ²¡ææå®CHARACTER SETï¼ç»æå符éåæ ¡å¯¹è§åéè¿character_set_connection å collation_connectionç³»ç»åéå®ä¹ã妿ç¨CAST()并带æCHARACTER SET Xé项ï¼é£ä¹ç»æå符éåæ ¡å¯¹è§åæ¯Xåå ¶ é»è®¤çæ ¡å¯¹è§åã ä½ å¯è½ä¸è½å¨CAST()ä¸ä½¿ç¨COLLATEåå¥ï¼ä½æ¯ä½ å¯ä»¥å¨å¤é¨ä½¿ç¨å®ãä¹å°±æ¯è¯´ï¼ä¸æ¯CAST(... COLLATE ...)ï¼èæ¯CAST(...) COLLATE ...ã ä¾å¦ï¼ SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin; å¨ä¼ ç»SQL模å¼ä¸ï¼å¦æä½ 转æ¢ä¸ä¸ªâ0âæ¥æåç¬¦ä¸²å°æ¥æç±»åï¼CAST()彿°è¿åNULLãå¨MySQL5.1ä¸è¿äº§ç䏿¡è¦åã 10.4.4. SHOWè¯å¥ä¸äºSHOWè¯å¥æä¾é¢å¤çå符éä¿¡æ¯ãè¿äºè¯å¥å æ¬SHOW CHARACTER SETãSHOW COLLATIONãSHOW CREATE DATABASEãSHOW CREATE TABLEåSHOW COLUMNSã SHOW CHARACTER SETå½ä»¤æ¾ç¤ºå ¨é¨å¯ç¨çå符éãå®å¸¦æä¸ä¸ªå¯éçLIKEå奿¥æç¤ºå¹é åªäºå符éåãä¾å¦ï¼ mysql> SHOW CHARACTER SET LIKE 'latin%'; +---------+-----------------------------+-------------------+--------+ | Charset | Description | Default collation | Maxlen | +---------+-----------------------------+-------------------+--------+ | latin1 | cp1252 West European | latin1_swedish_ci | 1 | | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 | | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 | | latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 | +---------+-----------------------------+-------------------+--------+ è§13.5.4.1èï¼âSHOW CHARACTER SETè¯æ³âã SHOW COLLATIONè¯å¥çè¾åºå æ¬å ¨é¨å¯ç¨çå符éãå®å¸¦æä¸ä¸ªå¯éçLIKEå奿¥æç¤ºå¹é åªäº æ ¡å¯¹è§ååãä¾å¦ï¼ mysql> SHOW COLLATION LIKE 'latin1%'; +-------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | | 0 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 0 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 0 |
| latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+-------------------+---------+----+---------+----------+---------+è§13.5.4.2èï¼âSHOW COLLATIONè¯æ³âã SHOW CREATE DATABASEè¯å¥æ¾ç¤ºå建ç»å®æ°æ®åºçCREATE DATABASEè¯å¥ãç»æå æ¬å ¨é¨æ°æ®åºéé¡¹ãæ¯æDEFAULT CHARACTER SETåCOLLATEãå ¨é¨æ°æ®åºé项åå¨å¨å½å为db.Optçææ¬æä»¶ä¸ï¼è¯¥æä»¶è½å¤å¨æ°æ®åºç®å½ä¸æ¾å°ã mysql> SHOW CREATE DATABASE test; +----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+è§13.5.4.4èï¼âSHOW CREATE DATABASEè¯æ³â SHOW CREATE TABLEä¸SHOW CREATE DATABASEç¸ä¼¼ï¼ä½æ¯æ¾ç¤ºå建ç»å®æ°æ®åºçCREATE TABLEè¯å¥ãåå®ä¹æ¾ç¤ºä»»ä½å符éè§æ ¼ï¼å¹¶ä¸è¡¨éé¡¹å æ¬å符éä¿¡æ¯ã è§13.5.4.5èï¼âSHOW CREATE TABLEè¯æ³â å½ä»¥SHOW FULL COLUMNSè°ç¨æ¶ï¼SHOW COLUMNSè¯å¥æ¾ç¤ºè¡¨ä¸åçæ ¡å¯¹è§åãå ·æCHARãVARCHARæTEXTæ°æ®ç±»åçåæéNULLç æ ¡å¯¹è§åãæ°å¼ååå ¶å®éå符类åçåæNULLæ ¡å¯¹è§åãä¾å¦ï¼ mysql> SHOW FULL COLUMNS FROM person\G *************************** 1. row *************************** Field: id Type: smallint(5) unsigned Collation: NULL Null: NO Key: PRI Default: NULL Extra: auto_increment Privileges: select,insert,update,references Comment: *************************** 2. row *************************** Field: name Type: char(60) Collation: latin1_swedish_ci Null: NO Key: Default: Extra: Privileges: select,insert,update,references Comment: å符é䏿¯æ¾ç¤ºçé¨åãï¼å符éåéå«å¨æ ¡å¯¹è§ååä¸ãï¼ MySQL 5.1æ¯æä¸¤ç§å符é以ä¿åUnicodeæ°æ®ï¼ · ucs2ï¼UCS-2 Unicodeå符éã · utf8ï¼Unicodeå符éçUTF8ç¼ç ã å¨UCS-2ï¼äºè¿å¶Unicode表示æ³ï¼ä¸ï¼æ¯ä¸ä¸ªå符ç¨ä¸ä¸ªååèçUnicodeç¼ç æ¥è¡¨ç¤ºçï¼ç¬¬ä¸ä¸ªåè表示éè¦çæä¹ãä¾å¦ï¼"LATIN CAPITAL LETTER A"çUnicodeç¼ç æ¯0x0041ï¼å®æé¡ºåºåå¨ä¸ºä¸¤ä¸ªåèï¼0x00 0x41ã"CYRILLIC SMALL LETTER YERU"ï¼Unicode 0x044Bï¼é¡ºåºåå¨ä¸ºä¸¤ä¸ªåèï¼0x04 0x4Bã对äºUnicodeå符åå®ä»¬çç¼ç ï¼è¯·åè§Unicode 主页ã å½åï¼UCS-2è¿ä¸è½å¤ç¨ä½ä¸ºå®¢æ·ç«¯å符éï¼è¿æå³çSET NAMES 'ucs2'ä¸èµ·ä½ç¨ã UTF8å符éï¼è½¬æ¢Unicodeè¡¨ç¤ºï¼æ¯åå¨Unicodeæ°æ®çä¸ç§å¯éæ¹æ³ã宿 ¹æ® RFC 3629æ§è¡ãUTF8å符éçææ³æ¯ä¸åUnicodeå符éç¨åé¿åèåºåç¼ç ï¼ Â· åºæ¬æä¸åæ¯ãæ°ååæ ç¹ç¬¦å·ä½¿ç¨ä¸ä¸ªåèã · 大夿°ç欧洲åä¸ä¸æå忝éå两个åèåºåï¼æ©å±çæä¸åæ¯ï¼å æ¬åé³ç¬¦å·ãé¿é³ç¬¦å·ãéé³ç¬¦å·ãä½é³ç¬¦å·åå ¶å®é³ç¬¦ï¼ã西éå°åæ¯ãå¸è è¯ãäºç¾å°¼äºè¯ãå¸ä¼¯æ¥è¯ãé¿æä¼¯è¯ãåå©äºè¯åå ¶å®è¯è¨ã · é©è¯ã䏿忥æ¬è±¡å½¢æå使ç¨ä¸ä¸ªåèåºåã RFC 3629说æäºéç¨ä¸å°å个åèçç¼ç åºåãå½åï¼MySQLUTF8䏿¯æå个åèãï¼UTF8ç¼ç çæ§æ 忝ç±RFC 2279ç»åºï¼å®æè¿°äºä»ä¸å°å 个åèçUTF8ç¼ç åºåãRFC 3629è¡¥å äºä½åºçRFC 2279ï¼å æ¤ï¼ä¸å使ç¨5个åèå6个åèçç¼ç åºåãï¼ æç¤ºï¼ä½¿ç¨UTF8æ¶ä¸ºäºèç空é´ï¼ä½¿ç¨VARCHARèä¸è¦ç¨CHARãå¦åï¼MySQLå¿ é¡»ä¸ºä¸ä¸ªCHAR(10) CHARACTER SET utf8åé¢å¤30个åèï¼å ä¸ºè¿æ¯å¯è½çæå¤§é¿åº¦ã å æ°æ®æ¯âå ³äºæ°æ®çæ°æ®âãæè¿°æ°æ®åºç任使°æ®âä½ä¸ºæ°æ®åºå 容ç对ç«é¢âæ¯å æ°æ®ãå æ¤ï¼ååãæ°æ®åºåãç¨æ·åãçæ¬å以åä»SHOWè¯å¥å¾å°çç»æä¸ç大é¨åå符串æ¯å æ°æ®ãè¿å æ¬INFORMATION_SCHEMAæ°æ®åºä¸ç表ä¸çå 容ï¼å 为å®ä¹çé£äºè¡¨åå¨å ³äºæ°æ®åºå¯¹è±¡çä¿¡æ¯ã å æ°æ®è¡¨è¿°å¿ 须满足è¿äºéæ±ï¼ · å ¨é¨å æ°æ®å¿ é¡»å¨åä¸å符éå ãå¦åï¼å¯¹INFORMä¸ä¸ªTION_SCHEMAæ°æ®åºä¸ç表æ§è¡çSHOWå½ä»¤åSELECTæ¥è¯¢ä¸è½æ£å¸¸å·¥ä½ï¼å 为è¿äºè¿ç®ç»æä¸çåä¸åçä¸åè¡å°ä¼ä½¿ç¨ä¸åçå符éã · å æ°æ®å¿ é¡»å æ¬ææè¯è¨çææå符ãå¦åï¼ç¨æ·å°ä¸è½å¤ä½¿ç¨å®ä»¬èªå·±çè¯è¨æ¥å½ååå表ã ä¸ºäºæ»¡è¶³è¿ä¸¤ä¸ªéæ±ï¼MySQL使ç¨Unicodeå符éåå¨å æ°æ®ï¼å³UTF8ãå¦æä½ ä»ä¸ä½¿ç¨éé³å符ï¼è¿ä¸ä¼å¯¼è´ä»»ä½ç ´åãä½å¦æä½ 使ç¨éé³å符ï¼åºè¯¥æ³¨æçæ¯å æ°æ®æ¯ç¨UTF8åå¨ã è¿æå³çï¼USER()ãCURRENT_USER()ãDATABASE()åVERSION()彿°çè¿åå¼è¢« é»è®¤è®¾ç½®ä¸ºUTF8å符éï¼è¿ä¸åä¹å½æ°å¦SESSION_USER() åSYSTEM_USER()çç»æç¸åã æå¡å¨å°character_set_systemç³»ç»åéè®¾ç½®ä¸ºå æ°æ®å符éçåï¼ mysql> SHOW VARIABLES LIKE 'character_set_system'; +----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| character_set_system | utf8 |
+----------------------+-------+åå¨å æ°æ®ä½¿ç¨Unicode并䏿å³çå头åDESCRIBE彿°çç»æé»è®¤å¨character_set_systemå符éä¸ãå½ä½ 使ç¨SELECT column1 FROM tè¯å¥æ¶ï¼åå为column1çå仿å¡å¨è¿å客æ·ç«¯å¹¶ä½¿ç¨ç±SET NAMESè¯å¥ç¡®å®çå符éãæ´æç¡®å°è¯´ï¼ä½¿ç¨çåç¬¦éæ¯ç±character_set_resultsç³»ç»åéçå¼ç¡®å®çã妿è¿ä¸ªç³»ç»åé设置为NULLï¼ä¸æ§è¡å符转æ¢ï¼æå¡å¨ä½¿ç¨æåçå符éï¼å符éç±character_set_systemç³»ç»åé设置ï¼è¿åå æ°æ®ã å¦æä½ å¸ææå¡å¨ä¸ä½¿ç¨UTF8å符éè¿åå æ°æ®ç»æï¼é£ä¹ä½¿ç¨SET NAMESè¯å¥å¼ºå¶æå¡å¨æ§è¡å符é转æ¢ï¼è§10.3.6èï¼âè¿æ¥å符éåæ ¡å¯¹âï¼ï¼æè å¨å®¢æ·ç«¯æ§è¡è½¬æ¢ãå¨å®¢æ·ç«¯æ§è¡è½¬æ¢æçè¾é«ï¼ä½è¿ç§é项并ä¸è½ä½¿ç¨äºå ¨é¨å®¢æ·ç«¯ã å¦æä½ æ£å¨ä¸ä¸ªè¯å¥ä¸ä½¿ç¨ï¼ä¾å¦ï¼USER()彿°è¿è¡æ¯è¾æèµå¼ï¼ä¸è¦æ å¿ãMySQLä¸ºä½ æ§è¡ä¸äºåå转æ¢ã SELECT * FROM Table1 WHERE USER() = latin1_column;è¿æ¯å¯ä»¥çï¼å ä¸ºå¨æ¯è¾ä¹ålatin1_columnåçå 容ä¼èªå¨è½¬æ¢å°UTF8ã INSERT INTO Table1 (latin1_column) SELECT USER();è¿æ¯å¯ä»¥çï¼å 为èµå¼ä¹åUSER()彿°è¿åçå 容èªå¨è½¬æ¢ä¸ºlatin1ãè³ä»ï¼èªå¨è½¬æ¢æ²¡æå ¨é¨å®æ½ï¼ä½æ¯ä»¥åççæ¬ä¸åºè¯¥å·¥ä½æ£å¸¸ã 尽管èªå¨è½¬æ¢ä¸å±äºSQLæ åï¼SQLæ ååææ¡£ä¸è¯´æ¯ä¸ä¸ªåç¬¦éæ¯ï¼æ ¹æ®æ¯æçå符ï¼Unicodeçâåéâãå æ¤ï¼ä¸ä¸ªç¥åçå忝ï¼âéç¨è¶ éçå符éè½å¤åºç¨äºå ¶åéâï¼æä»¬ç¸ä¿¡Unicodeç æ ¡å¯¹è§åè½å¤åºç¨äºéUnicodeåç¬¦ä¸²çæ¯è¾ã 注éï¼å¨MySQL5.1ä¸ï¼errmsg.txtæä»¶å ¨é¨ä½¿ç¨UTF8ã客æ·ç«¯å符éçè½¬æ¢æ¯èªå¨è¿è¡çï¼å¦åå æ°æ®ã 对äºMaxDBå ¼å®¹æ§ï¼ä¸é¢ä¸¤ä¸ªè¯å¥æ¯ç¸åçï¼ CREATE TABLE t1 (f1 CHAR( n) UNICODE); CREATE TABLE t1 (f1 CHAR( n) CHARACTER SET ucs2); ANSI SQLå®ä¹äºNCHARæè
NATIONAL
CHARä½ä¸ºä¸ä¸ªæ¹æ³æ¥æç¤ºCHARç±»åçååºè¯¥ä½¿ç¨æäºé¢å®ä¹çå符éãMySQL5.1使ç¨utf8ä½ä¸ºé¢å®ä¹çå符éãä¾å¦ï¼è¿äºåç±»åå£°ææ¯çä»·çï¼ CHAR(10) CHARACTER SET utf8
NATIONAL CHARACTER(10)
NCHAR(10)ä¸é¢åæ ·ï¼ VARCHAR(10) CHARACTER SET utf8
NATIONAL VARCHAR(10)
NCHAR VARCHAR(10)
NATIONAL CHARACTER VARYING(10)
NATIONAL CHAR VARYING(10)ä½ è½å¤ä½¿ç¨N'literal'æ¥å建ä¸ä¸ªä½¿ç¨å½å®¶ç¹æå符éçå符串ãè¿ä¸¤ä¸ªè¯å¥æ¯çä»·çï¼ SELECT N'some text';
SELECT _utf8'some text';å ³äºMySQLä»4.1以åççæ¬å°5.1çæ¬å符éå级çä¿¡æ¯ï¼è¯·åè§MySQL4.1åèæåã 10.10. MySQLæ¯æçå符éåæ ¡å¯¹MySQLæ¯æ30å¤ç§å符éç70å¤ç§ æ ¡å¯¹è§åãå符éåå®ä»¬çé»è®¤æ ¡å¯¹è§åå¯ä»¥éè¿SHOW CHARACTER SETè¯å¥æ¾ç¤ºï¼ mysql> SHOW CHARACTER SET; +----------+-----------------------------+---------------------+ | Charset | Description | Default collation | +----------+-----------------------------+---------------------+ | big5 | Big5 Traditional Chinese | big5_chinese_ci | | dec8 | DEC West European | dec8_swedish_ci | | cp850 | DOS West European | cp850_general_ci | | hp8 | HP West European | hp8_english_ci | | koi8r | KOI8-R Relcom Russian | koi8r_general_ci | | latin1 | cp1252 West European | latin1_swedish_ci | | latin2 | ISO 8859-2 Central European | latin2_general_ci | | swe7 | 7bit Swedish | swe7_swedish_ci | | ascii | US ASCII | ascii_general_ci | | ujis | EUC-JP Japanese | ujis_japanese_ci | | sjis | Shift-JIS Japanese | sjis_japanese_ci | | hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | | tis620 | TIS620 Thai | tis620_thai_ci | | euckr | EUC-KR Korean | euckr_korean_ci | | koi8u | KOI8-U Ukrainian | koi8u_general_ci | | gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | | greek | ISO 8859-7 Greek | greek_general_ci | | cp1250 | Windows Central European | cp1250_general_ci | | gbk | GBK Simplified Chinese | gbk_chinese_ci | | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | | armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | | utf8 | UTF-8 Unicode | utf8_general_ci | | ucs2 | UCS-2 Unicode | ucs2_general_ci | | cp866 | DOS Russian | cp866_general_ci | | keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | | macce | Mac Central European | macce_general_ci | | macroman | Mac West European | macroman_general_ci | | cp852 | DOS Central European | cp852_general_ci | | latin7 | ISO 8859-13 Baltic | latin7_general_ci | | cp1251 | Windows Cyrillic | cp1251_general_ci | | cp1256 | Windows Arabic | cp1256_general_ci | | cp1257 | Windows Baltic | cp1257_general_ci | | binary | Binary pseudo charset | binary | | geostd8 | GEOSTD8 Georgian | geostd8_general_ci | | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | +----------+-----------------------------+---------------------+ MySQLæä¸¤ç§Unicodeå符éãä½ è½å¤ä½¿ç¨è¿äºå符éä¿å大约650ç§è¯è¨çææ¬ã · ucs2 (UCS-2 Unicode)æ ¡å¯¹è§å:
utf8_unicode_ciæ ¡å¯¹è§åæ¯æ ¹æ®Unicodeæ ¡å¯¹è§åç®æ³ï¼UCAï¼æ§è¡çï¼ æ ¡å¯¹è§åæè¿°è§ http://www.unicode.org/reports/tr10/ãæ¤æ ¡å¯¹è§å使ç¨UCA 4.0.0çæ¬ç ç é®ï¼http://www.unicode.org/Public/UCä¸ä¸ª/4.0.0/ä¸ä¸ªllkeys-4.0.0.txtãï¼ä»¥ä¸è®¨è®ºä½¿ç¨utf8_unicode_ciï¼ä½åæ ·éåucs2_unicode_ciãï¼ å½åï¼utf8_unicode_ciæ ¡å¯¹è§åä» é¨åæ¯æUnicodeæ ¡å¯¹è§åç®æ³ãä¸äºåç¬¦è¿æ¯ä¸è½æ¯æãå¹¶ä¸ï¼ä¸è½å®å ¨æ¯æç»åçè®°å·ãè¿ä¸»è¦å½±åè¶ååä¿ç½æ¯çä¸äºå°æ°æ°æè¯è¨ï¼å¦ï¼Udmurt ãTatarãBashkiråMariã utf8_unicode_ciçæä¸»è¦çç¹è²æ¯æ¯ææ©å±ï¼å³å½æä¸ä¸ªåæ¯çä½ä¸å ¶å®åæ¯ç»åç¸çæ¶ãä¾å¦ï¼å¨å¾·è¯åä¸äºå ¶å®è¯è¨ä¸âÃâçäºâssâã utf8_general_ciæ¯ä¸ä¸ªéçç æ ¡å¯¹è§åï¼ä¸æ¯ææ©å±ãå®ä» è½å¤å¨å符ä¹é´è¿è¡é个æ¯è¾ãè¿æå³çutf8_general_ciæ ¡å¯¹è§åè¿è¡çæ¯è¾é度å¾å¿«ï¼ä½æ¯ä¸ä½¿ç¨utf8_unicode_ciç æ ¡å¯¹è§åç¸æ¯ï¼æ¯è¾æ£ç¡®æ§è¾å·®ï¼ã ä¾å¦ï¼ä½¿ç¨utf8_general_ciåutf8_unicode_ciä¸¤ç§ æ ¡å¯¹è§åä¸é¢çæ¯è¾ç¸çï¼ Ã = A à = O à = U ä¸¤ç§æ ¡å¯¹è§åä¹é´çåºå«æ¯ï¼å¯¹äºutf8_general_ciä¸é¢çç弿ç«ï¼ à = s 使¯ï¼å¯¹äºutf8_unicode_ciä¸é¢ç弿ç«ï¼ à = ss 对äºä¸ç§è¯è¨ä» å½ä½¿ç¨utf8_unicode_ciæåºåçä¸å¥½æ¶ï¼ææ§è¡ä¸å ·ä½è¯è¨ç¸å ³çutf8åç¬¦é æ ¡å¯¹è§åãä¾å¦ï¼å¯¹äºå¾·è¯åæ³è¯ï¼utf8_unicode_ciå·¥ä½çå¾å¥½ï¼å æ¤ä¸åéè¦ä¸ºè¿ä¸¤ç§è¯è¨åå»ºç¹æ®çutf8æ ¡å¯¹è§åã utf8_general_ciä¹éç¨ä¸å¾·è¯åæ³è¯ï¼é¤äºâÃâçäºâsâï¼è䏿¯âssâä¹å¤ãå¦æä½ çåºç¨è½å¤æ¥åè¿äºï¼é£ä¹åºè¯¥ä½¿ç¨utf8_general_ciï¼å 为å®é度快ãå¦åï¼ä½¿ç¨utf8_unicode_ciï¼å ä¸ºå®æ¯è¾åç¡®ã utf8_swedish_ciï¼ä¸å ¶å®è¯è¨ç¸å ³çutf8çæ ¡å¯¹è§åç¸ä¼¼ï¼æ¥æºäºutf8_unicode_ciï¼ä½¿ç¨é¢å¤çè¯è¨è§åãä¾å¦ï¼å¨çå ¸è¯ä¸ï¼ä»¥ä¸çå ³ç³»å¼æç«ï¼å®å¨å¾·è¯åæ³è¯ä¸ä¸æç«ï¼ à = Y < à utf8_spanish_ciåutf8_spanish2_ciæ ¡å¯¹è§ååå«éç¨äºç°ä»£åå¤å ¸è¥¿ççè¯ãå¨ä¸¤ç§ æ ¡å¯¹è§åä¸ï¼Ã±âï¼n-åé³ç¬¦ï¼æ¯ânâåâoâä¹é´çé´é忝ãå¦å¤ï¼å¯¹äºå¤å ¸è¥¿ççè¯ï¼âchâæ¯âcâådä¹é´çé´é忝ï¼å¹¶ä¸âllâæ¯âlâåâmâä¹é´çé´é忝ã 西欧å符éè¦ç大夿°è¥¿æ¬§è¯è¨ï¼å¦æ³è¯ã西ççè¯ãå æ³°ç½å°¼äºè¯ãå·´æ¯å 人è¯ãè¡èçè¯ãæå¤§å©è¯ãé¿èå·´å°¼äºè¯ãè·å °è¯ãå¾·è¯ã丹麦è¯ãçå ¸è¯ãæªå¨è¯ãè¬å °è¯ãæ³ç½äººè¯ãå°å²è¯ãç±å°å °è¯ãèæ ¼å °è¯åè±è¯ã · asciiï¼US ASCIIï¼æ ¡å¯¹è§åï¼ o ascii_bin o ascii_general_ciï¼ é»è®¤ï¼ · cp850ï¼DOSè¥¿æ¬§ï¼ æ ¡å¯¹è§åï¼ o cp850_bin o cp850_general_ciï¼ é»è®¤ï¼ · dec8ï¼DEC è¥¿æ¬§ï¼æ ¡å¯¹è§åï¼ o dec8_bin o dec8_swedish_ciï¼ é»è®¤ï¼ · hp8ï¼HP è¥¿æ¬§ï¼æ ¡å¯¹è§åï¼ o hp8_bin o hp8_english_ciï¼ é»è®¤ï¼ · latin1ï¼cp1252 è¥¿æ¬§ï¼æ ¡å¯¹è§åï¼ o latin1_bin o latin1_danish_ci o latin1_general_ci o latin1_general_cs o latin1_german1_ci o latin1_german2_ci o latin1_spanish_ci o latin1_swedish_ciï¼ é»è®¤ï¼ latin1æ¯ é»è®¤å符éãlatin1_swedish_ciæ¯ é»è®¤çæ ¡å¯¹è§åï¼å®ç¨äºå¤§å¤æ°MySQL客æ·ãè½ç¶ç»å¸¸è¯´å®ä»¥çå ¸/è¬å ° æ ¡å¯¹è§å为åºç¡ï¼ä½çå ¸åè¬å °äººä¸åæè¿ç§è¯´æ³ã latin1_german1_ciålatin1_german2_ciæ ¡å¯¹è§ååºäºDIN-1åDIN-2æ åï¼è¿éDIN代表Deutsches Institut für Normungï¼å¾·è¯çä»·äºANSIï¼ãDIN-1被å«åâåå ¸æ ¡å¯¹è§åâï¼DIN-2被å«åâçµè¯ç°¿æ ¡å¯¹è§åâã o latin1_german1_ciï¼åå ¸ï¼è§åï¼ o à = a o à = O o à = U o à = s o latin1_german2_ciï¼çµè¯ç°¿ï¼è§åï¼ o à = aE o à = OE o à = UE o à = ss å¨ latin1_spanish_ciæ ¡å¯¹è§åä¸ï¼âñâï¼n-tildeï¼æ¯ânâåâoâä¹é´çé´é忝ã · macromaï¼Macè¥¿æ¬§ï¼ æ ¡å¯¹è§åï¼ o macroman_bin o macroman_general_ciï¼ é»è®¤ï¼ · swe7ï¼7ä½çå ¸è¯ï¼ æ ¡å¯¹è§åï¼ o swe7_bin o swe7_swedish_ciï¼ é»è®¤ï¼
æä»¬è¿æä¾ä¸äºç¨äºæ·å
å
±åå½ãæ¯æ´ä¼å
ãåçå©ãç½é©¬å°¼äºãæ¯ç½çº¹å°¼äºãå
ç½å°äºåæ³¢å
°çåç¬¦éæ¯æã · cp1250ï¼Windows䏿¬§ï¼ æ ¡å¯¹è§åï¼ o cp1250_bin o cp1250_croatian_ci o cp1250_czech_cs o cp1250_general_ciï¼ é»è®¤ï¼ · cp852ï¼DOS 䏿¬§ï¼æ ¡å¯¹è§åï¼ o cp852_bin o cp852_general_ciï¼ é»è®¤ï¼ · keybcs2ï¼DOS Kamenicky Czech-Slovakï¼æ ¡å¯¹è§åï¼ o keybcs2_bin o keybcs2_general_ciï¼ é»è®¤ï¼ · latin2ï¼ISO 8859-2 䏿¬§ï¼æ ¡å¯¹è§åï¼ o latin2_bin o latin2_croatian_ci o latin2_czech_cs o latin2_general_ciï¼ é»è®¤ï¼ o latin2_hungarian_ci · macceï¼Mac 䏿¬§ï¼æ ¡å¯¹è§åï¼ o macce_bin o macce_general_ciï¼ é»è®¤ï¼ 10.10.4. 忬§ä¸ä¸ä¸å符éMySQLæ¯æç忬§åä¸ä¸å符éå
æ¬äºç¾å°¼äºè¯ãé¿æä¼¯è¯ã乿²»äºè¯ãå¸è
è¯ãå¸ä¼¯è±è¯ååè³å
¶è¯ï¼ · armscii8ï¼ARMSCII-8 äºç¾å°¼äºè¯ï¼æ ¡å¯¹è§åï¼ o armscii8_bin o armscii8_general_ciï¼ é»è®¤ï¼ · cp1256ï¼é¿æä¼¯è¯Windowsï¼ æ ¡å¯¹è§åï¼ o cp1256_bin o cp1256_general_ciï¼ é»è®¤ï¼ · geostd8ï¼GEOSTD8乿²»äºè¯ï¼ æ ¡å¯¹è§åï¼ o geostd8_bin o geostd8_general_ciï¼ é»è®¤ï¼ · greekï¼ISO 8859-7å¸è è¯ï¼æ ¡å¯¹è§åï¼ o greek_bin o greek_general_ciï¼ é»è®¤ï¼ · hebrewï¼ISO 8859-8å¸ä¼¯è±è¯ï¼æ ¡å¯¹è§åï¼ o hebrew_bin o hebrew_general_ciï¼ é»è®¤ï¼ · latin5ï¼ISO 8859-9 åè³å ¶è¯ï¼æ ¡å¯¹è§åï¼ o latin5_bin o latin5_turkish_ciï¼ é»è®¤ï¼ 10.10.5. æ³¢ç½çæµ·å符é
æ³¢ç½çæµ·å符éè¦çç±æ²å°¼äºè¯ãæè±ç»´äºè¯åç«é¶å®è¯è¨ãå½åæ¯æçä¸¤ç§æ³¢ç½çæµ·å符éï¼ Â· cp1257ï¼Windowsæ³¢ç½çæµ·ï¼ æ ¡å¯¹è§åï¼ o cp1257_bin o cp1257_general_ciï¼ é»è®¤ï¼ o cp1257_lithuanian_ci · latin7ï¼ISO 8859-13æ³¢ç½çæµ·ï¼æ ¡å¯¹è§åï¼ o latin7_bin o latin7_estonian_cs o latin7_general_ciï¼ é»è®¤ï¼ o latin7_general_cs 10.10.6. 西éå°å符é
使ç¨è¥¿éå°å符éåæ ¡å¯¹è§åçæBelarusianãä¿å å©äºãä¿è¯åä¹å
å
°è¯è¨ã · cp1251ï¼Windows 西éå°ï¼æ ¡å¯¹è§åï¼ o cp1251_bin o cp1251_bulgarian_ci o cp1251_general_ciï¼ é»è®¤ï¼ o cp1251_general_cs o cp1251_ukrainian_ci · cp866ï¼DOS ä¿è¯ï¼æ ¡å¯¹è§åï¼ o cp866_bin o cp866_general_ciï¼ é»è®¤ï¼ · koi8rï¼KOI8-R Relcom ä¿è¯ï¼æ ¡å¯¹è§åï¼ o koi8r_bin o koi8r_general_ciï¼ é»è®¤ï¼ · koi8uï¼KOI8-U ä¹å å °è¯ï¼æ ¡å¯¹è§åï¼ o koi8u_bin o koi8u_general_ciï¼ é»è®¤ï¼ 10.10.7. äºæ´²å符éæä»¬æ¯æçäºæ´²å符éå æ¬ä¸æãæ¥è¯ãé©è¯åæ³°å½è¯ãè¿äºå¯è½æ¯è¾å¤æãä¾å¦ï¼ä¸æå符éå¿ é¡»èèå°ä¸åç§ä¸åçå符ã · big5ï¼Big5ä¼ ç»ä¸æï¼ æ ¡å¯¹è§åï¼ o big5_bin o big5_chinese_ciï¼ é»è®¤ï¼ · cp932ï¼SJIS Windowsæ¥è¯ï¼æ ¡å¯¹è§åï¼ o cp932_bin o cp932_japanese_ciï¼ é»è®¤ï¼ · eucjpmsï¼UJIS Windowsæ¥è¯ï¼æ ¡å¯¹è§åï¼ o eucjpms_bin o eucjpms_japanese_ciï¼ é»è®¤ï¼ · euckrï¼EUC-KR é©è¯ï¼æ ¡å¯¹è§åï¼ o euckr_bin o euckr_korean_ciï¼ é»è®¤ï¼ · gb2312ï¼GB2312 ç®ä½ä¸æï¼æ ¡å¯¹è§åï¼ o gb2312_bin o gb2312_chinese_ciï¼ é»è®¤ï¼ · gbkï¼GBKç®ä½ä¸æï¼ æ ¡å¯¹è§åï¼ o gbk_bin o gbk_chinese_ciï¼ é»è®¤ï¼ · sjisï¼Shift-JIS æ¥è¯ï¼æ ¡å¯¹è§åï¼ o sjis_bin o sjis_japanese_ciï¼ é»è®¤ï¼ · tis620ï¼TIS620 æ³°å½è¯ï¼æ ¡å¯¹è§åï¼ o tis620_bin o tis620_thai_ciï¼ é»è®¤ï¼ · ujisï¼EUC-JP æ¥è¯ï¼æ ¡å¯¹è§åï¼ o ujis_bin o ujis_japanese_ciï¼ é»è®¤ï¼ 为ä»ä¹éè¦cp932ï¼ å¨MySQLä¸ï¼sjiså符é对åºäºç±IANAå®ä¹çShift_JISå符éï¼å®æ¯æJIS X0201åJIS X0208å符ãï¼è§ http://www.iana.org/assignments/character-setsãï¼ ä½æ¯ï¼âSHIFT JISâä½ä¸ºæè¿°æ§æ¯è¯çå«ä¹åå¾é常å«ç³ä¸æ¸ ï¼å¹¶ä¸å®å¸¸å¸¸å æ¬ç±ä¸åä¾åºåå®ä¹çShift_JISæ©å±é¨åã ä¾å¦ï¼ä½¿ç¨å¨æ¥æ¬Windowsç¯å¢ä¸ä½¿ç¨çâSHIFT JISâæ¯Microsoft对Shift_JISçMicrosoftæ©å±ï¼å®çåç¡®å忝Microsoft Windows Codepage: 932æcp932ãé¤ç±Shift_JISæ¯æçå符ä¹å¤ï¼cp932æ¯ææ©å±å符ï¼å¦NECéæ©çIBMæ©å±å符åIBMæ©å±å符ã è®¸å¤æ¥æ¬ç¨æ·å¨ä½¿ç¨è¿äºæ©å±å符è¿ç¨ä¸ç¢°å°è¿ä¸äºé®é¢ãè¿äºé®é¢æ¯ç±äºä»¥ä¸æ åµå¼èµ·çï¼ Â· MySQLèªå¨è½¬æ¢å符éã · å符ééè¿Unicode转æ¢ï¼ucs2ï¼ã · sjiså符é䏿¯æè¿äºæ©å±å符转æ¢ã · ä»å·ç§°âSHIFT JISâå°Unicodeç转æ¢ï¼åå¨ä¸äºè½¬æ¢è§åï¼å¹¶ä¸ä¸äºå符转æ¢å°Unicodeä¾èµä¸åç转æ¢è§åãMySQLä» æ¯æè¿äºè½¬æ¢è§åä¸çä¸ç§ï¼å¨åé¢æè¿°ï¼ã MySQLcp932å符éå¯ä»¥è§£å³è¿äºè½¬æ¢é®é¢ã å 为MySQLæ¯æå符é转æ¢ï¼å°IANA Shift_JIS å cp932å离为两ç§ä¸ååç¬¦éæ¯éè¦çï¼å 为å®ä»¬æä¾ä¸åç转æ¢è§åã cp932ä¸sjisæä»ä¹ä¸åï¼ cp932å符éä¸sjisåå¨ä»¥ä¸ä¸åç¹ï¼ · cp932æ¯æNECç¹æ®å符ãNECéæ©çIBMæ©å±å符åIBMéæ©çå符ã · ä¸äºcp932å符æä¸¤ä¸ªä¸åçç¼ç ç¹ï¼è¿ä¸¤ç§ç¼ç ç¹è½¬æ¢ä¸ºç¸åUnicodeç¼ç ç¹ãå æ¤ï¼å½ä»Unicode转æ¢åå°cp932æ¶ï¼å¿ 须鿩ä¸ä¸ªç¼ç ç¹ã对äºè¿ç§âç¸äºè½¬æ¢âï¼ä½¿ç¨ç±Microsoftæ¨èç转æ¢è§åãï¼è§ httpï¼//support.microsoft.com/kb/170559/EN-US/ãï¼ è½¬æ¢è§åå¦ä¸ï¼ o 妿å符å¨JIS X 0208 åNECç¹æ®å符ä¸åæ¶åå¨ï¼ä½¿ç¨JIS X 0208 çç¼ç ç¹ã o 妿å符å¨NECç¹æ®å符åIBMéæ©çå符ä¸åæ¶åå¨ï¼ä½¿ç¨NECç¹æ®å符çç¼ç ç¹ã o 妿å符å¨IBMéæ©çå符åNECéæ©çIBMæ©å±å符ä¸åæ¶åå¨ï¼ä½¿ç¨IBMæ©å±å符çç¼ç ç¹ã å ³äºcp932å符çUnicode å¼çå表æ¾ç¤ºä¿¡æ¯è§http://www.microsoft.com/globaldev/reference/dbcs/932.htmã对äºcp932表ä¸ç带æä¸é¢æå使°ååºç°çå符çå®ä½ï¼æ°å代表ç¸åºçUnicodeï¼ucs2ï¼ç¼ç ã对äºè¡¨ä¸æä¸¤ä¸ªå¸¦ä¸åçº¿çæ°ååºç°çå®ä½ï¼æ©æä¸ä¸ªä»¥é£ä¸¤ä¸ªæ°åå¼å¤´çcp932å符å¼çèå´ãç¹å»ä¸ä¸ªè¿ç§è¡¨çå®ä½ï¼å°å¸¦ä½ å°ä¸ä¸ªé¡µï¼è¯¥é¡µæ¾ç¤ºæ¯ä¸ªä»¥é£äºæ°åå¼å¤´çcp932å符çUnicodeå¼ã 以ä¸è¿æ¥å¾éè¦ãå®ä»¬ä¸ä¸åå符éçç¼ç ç¸å¯¹åºï¼ o NECç¹æ®åç¬¦ï¼ http://www.microsoft.com/globaldev/reference/dbcs/932/932_87.htm o NECéæ©çIBMæ©å±åç¬¦ï¼ o http://www.microsoft.com/globaldev/reference/dbcs/932/932_ED.htm o http://www.microsoft.com/globaldev/reference/dbcs/932/932_EE.htm o IBMéæ©çåç¬¦ï¼ o http://www.microsoft.com/globaldev/reference/dbcs/932/932_FA.htm o http://www.microsoft.com/globaldev/reference/dbcs/932/932_FB.htm o http://www.microsoft.com/globaldev/reference/dbcs/932/932_FC.htm · cp932ä¸eucjpmsç»åæ¯æç¨æ·èªå®ä¹å符ç转æ¢ï¼å¹¶ä¸è§£å³sjis/ujis转æ¢é®é¢ã详ç»ä¿¡æ¯ï¼è¯·åè§http://www.opengroup.or.jp/jvc/cde/sjis-euc-e.htmlã · 对äºä¸äºå符ï¼ä¸ucs2ä¹é´ç转æ¢ä¸sjisåcp932ä¹é´çè½¬æ¢æ¯ä¸åçãä¸è¡¨ä¸¾ä¾è¯´æäºè¿äºä¸åã 转æ¢å°ucs2ï¼
ä»ucs2转æ¢ï¼
è¿æ¯MySQLåèæåçç¿»è¯çæ¬ï¼å ³äºMySQLåèæåï¼è¯·è®¿é®dev.mysql.comã åå§åèæåä¸ºè±æçï¼ä¸è±æçåèæåç¸æ¯ï¼æ¬ç¿»è¯çå¯è½ä¸æ¯ææ°çã |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||