mysql ÀÌ¹Ì µ¥ÀÌÅÍ°¡ µé¾î°£ Å×À̺íÀÇ UTF-8 ¹× °¢Á¾ ¹®Àڼ º¯È¯
ÇöÀç ³ªÀÇ Fedora Core 3 UTF-8 ¸®´ª½º »ó¿¡¼, JDBC¿Í ÇÑ±Û ¹®Á¦¸¦ ÀÏÀ¸Å°Áö ¾Ê´Â MySQL 4.1.x ¼³Á¤ »óÅ´Â...
±âÁ¸ ¹öÀü¿¡¼´Â "euc-kr"·Î Ç¥±âµÇ´Â ¹®ÀÚ¼ÂÀÌ "euckr"·Î ¹Ù²î¾ú´Ù.
/etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
JDBC Driver URL
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8
ÇöÁ¦ ¹®Àڼ Á¤º¸ º¸±â
show variables like 'c%';
- °á°ú
character_set_client : utf8
character_set_connection : utf8
character_set_database : utf8
character_set_results : utf8
character_set_server : utf8
character_set_system : utf8
character_sets_dir : /usr/share/mysql/charsets/
collation_connection : utf8_general_ci
collation_database : utf8_general_ci
collation_server : utf8_general_ci
ÀÌ¹Ì »ý¼ºµÈ DATABASEÀÇ ¹®Àڼ ¹Ù²Ù±â
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE [DB¸í] DEFAULT CHARACTER SET utf8;
ÀÌ¹Ì µ¥ÀÌÅÍ°¡ µé¾î°£ Å×À̺íÀÇ ¹®Àڼ º¯È¯
create table test (merong varchar(20) collate latin1_general_ci);
ÀÌ·¸°Ô ¸¸µé¾îÁø Å×ÀÌºí¿¡ ÇÑ±Û µ¥ÀÌÅ͸¦ ³ÖÀº ÈÄ Çʵ带 euckr ·Î º¯°æÇÏ·Á¸é
´ÙÀ½Ã³·³ ÇØ¾ß ÇÕ´Ï´Ù.
alter table test modify merong binary(100);
alter table test modify merong varchar(20) collate euckr_korean_ci;
binary ·Î ¹Ù²Ù¸é ¹®Àڼ Ư¼ºÀÌ »ç¶óÁö±â ¶§¹®¿¡ ÀÌ·± º¯È¯°úÁ¤À» °ÅÃľß
ÇÕ´Ï´Ù(¸Þ´º¾ó¿¡ ÀÇÇϸé). ±×³É ¹Ù²Ù¸é ¹®ÀÚµéÀÌ ¼Õ»óµË´Ï´Ù.
[Ãâó] http://rayis.egloos.com/841786
±âÁ¸ EUC-KR µ¥ÀÌŸ¸¦ 4.1.x·Î ¿Å±â±â
===================================
4.1.1 alpha ¿¡¼ ÇÑ±Û Á¦´ë·Î ¼³Á¤Çϱâ
mysqlÀÌ 4.1·Î ¾÷±×·¹ÀÌµå µÇ¸é¼ ¼ºêÄõ¸®°¡ Áö¿øµÇ°Ô µÇ¾î
¾Æ¸¶µµ ¸¹Àº »ç¶÷µéÀÌ °³¹ß½ÃÁ¡¿¡¼ ÇÑ ¹øÂëÀº mysql4.1À» »ç¿ëÇÒÁö
°í¹ÎÇßÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù.
±×·¯³ª ¾ÆÁ÷ Á¦´ë·ÎµÈ ¹öÀüÀÌ ¾Æ´Ñ°ü°è·Î ¹öÁ£ÇÑ ¸Þ´º¾óÀÌ ¾ø¾î
º¯ÈµÈ localization¼ÂÆö§¹®¿¡ ¸¹Àº ºÐµéÀÌ °í»ýÇßÀ» °ÍÀÌ¶ó ¿¹»óÇÕ´Ï´Ù.
mysql4.1¿¡¼´Â 4.0¿¡¼Ã³·³ default character setÇϳª¸¸ ¹Ù²ãÁÖ¸é ³¡³ªÁú
¾Ê½À´Ï´Ù. ¼¹ö/µ¥ÀÌÅͺ£À̽º/Å×À̺í/connection/ ½ÉÁö¾î Çʵå
ÇϳªÇϳª, ½ºÆ®¸µ ÇϳªÇϳª±îÁöµµ character set°ú collationÀ» ¼³Á¤ÇÒ ¼ö
ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ±×·¡¼ 4.0¿¡¼ ¼ºñ½ºÇÏ´ø »çÀÌÆ®¸¦ 4.1·Î
µ¥ÀÌÅ͸¦ ¿Å±â´Â °úÁ¤¿¡¼ ÇѱÛÀÌ ±úÁö´Â Çö»óÀÌ ¹ß»ýÇÕ´Ï´Ù.
½±°Ô ¸»¾¸µå¸®¸é 4´Ü°è¿¡ °ÉÃļ °¢°¢ character set°ú collationÀ»
º¯°æÇØÁÖ½Ã¸é µË´Ï´Ù. ¿ì¼± µ¥ÀÌÅͺ£À̽º¸¦ ´ÙÀ½°ú °°ÀÌ »õ·Î »ý¼ºÇÕ´Ï´Ù.
>> create database DB_NAME character set euckr collation euckr_korean_ci
±×¸®°í 4.0ÀÇ µ¥ÀÌÅ͸¦ ½ºÅ©¸³Æ®·Î º¹»çÇÑ ´ÙÀ½ °¢°¢ÀÇ Å×ÀÌºí ³¡¿¡
ºÙ¾îÀÖ´Â character setÀ» euc-kr À̳ª latin1¿¡¼ euckr·Î º¯°æÇØÁÝ´Ï´Ù.
(4.1¿¡¼ ÇѱÛÀÇ character setÀ̸§ÀÌ euc-kr¿¡¼ euckr·Î º¯°æµÇ¾ú½À´Ï´Ù.)
±×·± ´ÙÀ½ mysql À» --default-character-set=euckr --default-collation=euckr_korean_ci ÀÇ ¿É¼ÇÀ» ÁÖ¾î ½ÇÇà½ÃÅ°¸é¼ ÀڷḦ ´ýÇÁ¹Þ½À´Ï´Ù.
>> mysql -uroot -p --default-character-set=euckr --default-collation=euckr_korean_ci < DB_SCRIPT.SQL
(DB_SCRIPT.SQLÆÄÀÏÀº 4.0¿¡¼ ¹ÞÀº µ¥ÀÌÅÍ ½ºÅ©¸³Æ®ÆÄÀÏÀÌ°ÚÁÒ.)
±×·¸°Ô Çϸé ÀÏ´Ü µ¥ÀÌÅͺ£À̽º ¾îÇʸ®ÄÉÀ̼Ç(¿¹¸¦ µé¸é SQLyog°°Àº ÇÁ·Î±×·¥)¿¡¼´Â Á¤»óÀûÀ¸·Î µ¥ÀÌÅ͸¦ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
ÇÏÁö¸¸ JDBC¸¦ »ç¿ëÇؼ Á¢¼ÓÇÏ´Â °æ¿ì connection charactersetÀ» µû·Î
¼³Á¤ÇØÁÖÁö ¾ÊÀ¸¸é ÇѱÛÀÌ ±úÁú °ÍÀÔ´Ï´Ù.
Àú°°Àº °æ¿ì ¾îÇø®ÄÉÀ̼ǿ¡¼ connectionÀ» ¾ò¾î¿À´Â Áï½Ã
ÇØ´ç connectionÀ» ÀÌ¿ëÇÏ¿© "SET CHARACTER SET euckr"À̶õ
SQL¸í·ÉÀ» executeUpdate ½ÃÄ×¼ ÇØ°áÇß½À´Ï´Ù¸¸ ¾Æ¸¶µµ ´õ ±ò²ûÇÑ
¹æ¹ýÀÌ ÀÖÀ» ÁÙ ¾Ð´Ï´Ù.
±×·¸°Ô Çϸé mysql4.1.1¾ËÆÄ¿¡¼µµ ÇѱÛÀ» ¹®Á¦¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Âü°í·Î ±×³É latin1À¸·Î ¼³Á¤ÇÑ »óÅ¿¡¼µµ ÇѱÛÀÌ »ç¿ëÀÌ °¡´ÉÇϱä ÇÕ´Ï´Ù¸¸ order by³ª ÀϺΠÇѱ۷ÎÀÇ °Ë»ö½Ã¿¡ Á¦´ë·Î °Ë»öÀÌ ¾ÈµÇ´Â °æ¿ì°¡ ¹ß»ýÇÕ´Ï´Ù. ±×·± °æ¿ì ÇØ´ç Çʵ常 character setÀ» ¼³Á¤Çؼ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é latin1À¸·Î ÀúÀåµÈ ÇѱÛÀ» euckrÀÇ ÄÚµå¼Â ¼ø¼·Î Á¤·ÄÇÏ°í ½ÍÀ» ¶§ ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µË´Ï´Ù.
>> SELECT * FROM table_name ORDER BY k COLLATE euckr_korean_ci
±×·¯¸é ÇÑ±Û ¼ø¼·Î Á¤·ÄÀÌ µË´Ï´Ù.
ÀÌ ¸»Àº ¸¸¾à ÀÌÁ¦±îÁö latin1À¸·Î Àß ½á¿À½Å ºÐÀ̶ó¸é Á¤·ÄÀ» À§Çؼ¸¸ Ãß°¡ÀûÀ¸·Î Äڵ带 Ãß°¡ÇØÁÙ °æ¿ì ¹®Á¦¾øÀÌ Àß Á¤·ÄÀÌ µÊÀ» ÀǹÌÇÏ´Â °ÍÀÌ´Ï µ¥ÀÌÅͺ£À̽º¸¦ Åë°·Î ¼öÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø°ÚÁö¿ä.
Ãâó: http://openlife.tistory.com/306 [¹°°í±â ¸¹Àº ¹Ù´Ù]