β > WHERE DESCRIPTION LIKE '%Chinese%' OR
β > DESCRIPTION LIKE '%Japanese%' OR DESCRIPTION LIKE '%Korean%'
β > ORDER BY CHARACTER_SET_NAME;
+--------------------+---------------------------+
| CHARACTER_SET_NAME | DESCRIPTION |
+--------------------+---------------------------+
| big5 | Big5 Traditional Chinese |
| cp932 | SJIS for Windows Japanese |
| eucjpms | UJIS for Windows Japanese |
| euckr | EUC-KR Korean |
| gb2312 | GB2312 Simplified Chinese |
| gbk | GBK Simplified Chinese |
| sjis | Shift-JIS Japanese |
| ujis | EUC-JP Japanese |
+--------------------+---------------------------+
8 rows in set (0.01 sec)
10.11.14: ΠΠ°ΠΊ Ρ ΡΠ·Π½Π°Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» X Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π²ΠΎ Π²ΡΠ΅Ρ Π½Π°Π±ΠΎΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²?
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΏΡΠΎΡΠ΅Π½Π½Π½ΡΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΡ ΠΈ ΡΠΏΠΎΠ½ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Kana ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ CJK-Π½Π°Π±ΠΎΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠ° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» UCS-2 Unicode, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
DELIMITER //
CREATE PROCEDURE p_convert(ucs2_char CHAR(1) CHARACTER SET ucs2)
BEGIN
CREATE TABLE tj (ucs2 CHAR(1) character set ucs2,
utf8 CHAR(1) character set utf8,
big5 CHAR(1) character set big5,
cp932 CHAR(1) character set cp932,
eucjpms CHAR(1) character set eucjpms,
euckr CHAR(1) character set euckr,
gb2312 CHAR(1) character set gb2312,
gbk CHAR(1) character set gbk,
sjis CHAR(1) character set sjis,
ujis CHAR(1) character set ujis);
INSERT INTO tj (ucs2) VALUES (ucs2_char);
UPDATE tj SET utf8=ucs2, big5=ucs2, cp932=ucs2, eucjpms=ucs2, euckr=ucs2,
gb2312=ucs2, gbk=ucs2, sjis=ucs2, ujis=ucs2;
/* If there's a conversion problem, UPDATE will produce a warning. */
SELECT hex(ucs2) AS ucs2, hex(utf8) AS utf8, hex(big5) AS big5,
hex(cp932) AS cp932, hex(eucjpms) AS eucjpms, hex(euckr) AS euckr,
hex(gb2312) AS gb2312, hex(gbk) AS gbk, hex(sjis) AS sjis,
hex(ujis) AS ujis FROM tj;
DROP TABLE tj;
END//
ΠΠ²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ucs2 ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° (ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅) Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Unicode ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅Π½ ucs2 ( http://www.unicode.org/Public/UNIDATA/UnicodeData.txt) ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» Katakana Pe ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ CJK-Π½Π°Π±ΠΎΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° 0x30da. ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄Π»Ρ p_convert(), ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ:
mysql> CALL p_convert(0x30da)//
+------+--------+------+-------+---------+-----+------+------+------+------+
| ucs2 | utf8 | big5 | cp932 | eucjpms |euckr|gb2312| gbk | sjis | ujis |
+------+--------+------+-------+---------+-----+------+------+------+------+
| 30DA | E3839A | C772 | 8379 | A5DA |ABDA |A5DA | A5DA | 8379 | A5DA |
+------+--------+------+-------+---------+-----+------+------+------+------+
1 row in set (0.04 sec)
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΎΠ»Π±ΡΠ° Π½Π΅ 3F, ΡΠΎ Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° (?), ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
10.11.15: ΠΠΎΡΠ΅ΠΌΡ CJK-ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π² Unicode? (I)
ΠΠ½ΠΎΠ³Π΄Π° Π»ΡΠ΄ΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ° utf8_unicode_ci ΠΈΠ»ΠΈ ucs2_unicode_ci, Π»ΠΈΠ±ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ORDER BY Π½Π΅ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ. Π₯ΠΎΡΡ ΠΌΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΠ΄Π΅ΠΉ Π½Π΅ ΡΠΈΡΠ°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π²Π΅ΡΠΎΠ² Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Unicode. MySQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π½Π° http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt. ΠΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅, Π½Π°ΡΠ°Π² Ρ unicode.org, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ MySQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°ΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ 4.0.0 allkeys , Π° Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ 4.1.0. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ Π² ΠΠ»ΡΠΊΠ΅ #16526, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
mysql< CREATE TABLE tj (s1 CHAR(1) CHARACTER SET utf8 COLLATE
utf8_unicode_ci);
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO tj VALUES ('ΡΠΠ'),('ΡΠΠ');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tj WHERE s1 = 'ΡΠΠ';
+-----+
| s1 |
+-----+
| ΡΠΠ |
| ΡΠΠ |
+-----+
2 rows in set (0.00 sec)
Π‘ΠΈΠΌΠ²ΠΎΠ» Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π΅ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΊΠ°Π»ΠΈ. ΠΠΎΡΠ΅ΠΌΡ MySQL Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΡΡΠΎ? Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΈΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° Unicode, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ, ΡΠΈΡΠ°Ρ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π΄Π»Ρ ucs2-Π²Π΅ΡΡΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
mysql> SELECT s1, HEX(CONVERT(s1 USING ucs2)) FROM tj;
+-----+-----------------------------+
| s1 | HEX(CONVERT(s1 USING ucs2)) |
+-----+-----------------------------+
| ΡΠΠ | 304C |
| ΡΠΠ | 304B |
+-----+-----------------------------+
2 rows in set (0.03 sec)
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΡΠ΅ΠΌ 304B ΠΈ 304C Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 4.0.0 allkeys ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ:
304B; [.1E57.0020.000E.304B] # HIRAGANA LETTER KA
304C; [.1E57.0020.000E.304B][.0000.0140.0002.3099] # HIRAGANA LETTER GA; QQCM
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Unicode (ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠΊΠΈ #) ΡΠΎΠΎΠ±ΡΠ°ΡΡ Π½Π°ΠΌ ΡΠΏΠΎΠ½ΡΠΊΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» (Hiragana), Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (ΡΠΈΠΌΠ²ΠΎΠ», ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ Π·Π½Π°ΠΊ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ) ΠΈ Π·Π°ΠΏΠ°Π΄Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (KA ΠΈΠ»ΠΈ GA, ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΈ Π½Π΅ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²). ΠΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π²Π΅Ρ (primary weight , ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ Π²Π½ΡΡΡΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ) 1E57 Π½Π° ΠΎΠ±Π΅ΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ . ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ MySQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π²Π΅Ρ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΠ»Π°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΠΠ ΠΈ ΡΠΠ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Unicode ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΈΡ , ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ non-UCA (Unicode Collation Algorithm) ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (utf8_unicode_bin ΠΈΠ»ΠΈ utf8_general_ci), Π»ΠΈΠ±ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ HEX(), Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ORDER BY CONVERT(s1 USING sjis). ΠΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Unicode, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ: ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» Π½Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, Π±ΡΠ» ΠΏΡΠ°Π². ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΏΠΎΠ½ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ JIS X 4061, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅/Π½Π΅Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ KA/GA, ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ.
10.11.16: ΠΠΎΡΠ΅ΠΌΡ CJK-ΡΡΡΠΎΠΊΠΈ Π½Π΅ ΡΠΎΡΡΠΈΡΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π² Unicode? (Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅)
ΠΡΠ»ΠΈ ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Unicode (ucs2 ΠΈΠ»ΠΈ utf8) ΠΈ ΠΡ Π·Π½Π°Π΅ΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Unicode, Π½ΠΎ MySQL Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΠ°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠ°Π±Π»ΠΈΡΡ:
mysql> SHOW CREATE TABLE t\G
******************** 1. row ******************
Table: t
Create Table: CREATE TABLE `t` (`s1` char(1) CHARACTER SET ucs2 DEFAULT NULL)
ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎ, ΠΊΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ° INFORMATION_SCHEMA.COLUMNS ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°:
mysql> SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
β > FROM INFORMATION_SCHEMA.COLUMNS
β > WHERE COLUMN_NAME = 's1' AND TABLE_NAME = 't';
+-------------+--------------------+-----------------+
| COLUMN_NAME | CHARACTER_SET_NAME | COLLATION_NAME |
+-------------+--------------------+-----------------+
| s1 | ucs2 | ucs2_general_ci |
+-------------+--------------------+-----------------+
1 row in set (0.01 sec)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ucs2_general_ci Π²ΠΌΠ΅ΡΡΠΎ ucs2_unicode_ci. ΠΡΠΈΡΠΈΠ½Π° ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°ΠΊ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ SHOW CHARSET, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π·Π΄Π΅ΡΡ:
mysql> SHOW CHARSET LIKE 'ucs2%';
+---------+---------------+-------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+-------------------+--------+
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
+---------+---------------+-------------------+--------+
1 row in set (0.00 sec)
ΠΠ»Ρ ucs2 ΠΈ utf8 Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅: general. Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Unicode, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ COLLATE ucs2_unicode_ci.
10.11.17: ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Ρ MySQL?
MySQL Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΡΠΎ Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π² 3 Π±Π°ΠΉΡΠ°Ρ Π΄Π»Ρ UTF-8. ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Basic Multilingual Plane/Plane 0 . Π’ΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Han Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Ρ; ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ Π½ΠΈΡ Π½Π΅ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½Π°. ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΎΡΡΠ΅ΡΠ°ΠΌ ΡΠΈΠΏΠ° Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΠ»ΡΠΊΠ΅ #12600, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΡΡ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π‘ utf8 ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ΅ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π±Π°ΠΉΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ. ΠΠ½Π°ΡΠ΅ ΠΌΡ Π½Π΅ Π·Π½Π°Π»ΠΈ Π±Ρ, ΠΊΠ°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
ΠΠ΄Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ucs2 Π²ΠΌΠ΅ΡΡΠΎ utf8, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π½Π° BLOB ΠΈΠ»ΠΈ BINARY, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ.
10.11.18: Π Π°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ CJKV?
ΠΠ΅Ρ. Π’Π΅ΡΠΌΠΈΠ½ CJKV (Chinese Japanese Korean Vietnamese) ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π²ΡΠ΅ΡΠ½Π°ΠΌΡΠΊΠΈΠΌ Π½Π°Π±ΠΎΡΠ°ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Han (ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠ΅) ΡΠΈΠΌΠ²ΠΎΠ»Ρ. MySQL Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΡΠΉ Π²ΡΠ΅ΡΠ½Π°ΠΌΡΠΊΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Han. MySQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²ΡΠ΅ΡΠ½Π°ΠΌΡΠΊΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ Western.
ΠΠ»ΡΠΊ #4745 ΠΏΡΠΎΡΡΠ±Π° ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΡΠ΅ΡΠ½Π°ΠΌΡΠΊΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΡΠΎΠΌ.
10.11.19: MySQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ CJK ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π±Π»ΠΈΡ?
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π° Π² MySQL 5.1, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Ρ ΠΈΠΌΠ΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ CJK Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², MySQL ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ @ [email protected]@00ae, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΡΠ΄Π»ΠΈΠ²ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ E6A5AE, ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Unicode-ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ΅ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΠΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ SHOW DATABASES, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π° ΠΊΠ°ΠΊ ΡΠ΅ΠΎ.
10.11.20: ΠΠ΄Π΅ Ρ ΠΌΠΎΠ³Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ MySQL Π½Π° ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ, ΠΊΠΎΡΠ΅ΠΉΡΠΊΠΈΠΉ ΠΈ ΡΠΏΠΎΠ½ΡΠΊΠΈΠΉ ΡΠ·ΡΠΊΠΈ?
Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΠΊΠΈΡΠ°ΠΉΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π΄Π»Ρ MySQL 5.1.12 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° http://dev.mysql.com/doc/#chinese-5.1. Π―ΠΏΠΎΠ½ΡΠΊΠ°Ρ Π΄Π»Ρ MySQL 4.1 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° Ρ http://dev.mysql.com/doc/#japanese-4.1.