ÃֽŠ°Ô½Ã±Û(DB)
2017.03.13 / 13:49

encoding ¼³Á¤Çϱâ ÃÑÁ¤¸® (euc-kr -> utf-8)

Mans
Ãßõ ¼ö 296

* Àüü APM ½Ã½ºÅÛÀÇ UTF-8 ¼³Á¤Çϱâ *



Á¾·¡¿¡´Â ȨÆäÀÌÁö°¡ ÀÚ±¹Àε鸸 ÀÌ¿ëÇÒ °ÍÀ» ¿¹»óÇÏ°í Á¦ÀÛÇÏ¹Ç·Î½á ¿Ü±¹ÀÎ Áï, ºñÇÑ±Û »ç¿ëÀڵ鿡 ´ëÇÑ ¼­ºñ½º¸¦ ¹ÌÃÄ ¿°µÎ¿¡ µÎÁö ¸øÇϹǷνá ÇѱÛÀÌ ?????$%^&( ó·³ ±úÁ® º¸ÀÌ´Â ¹«ÁöÇÔÀ» º¸¿´´ø °ÍÀÌ »ç½ÇÀÔ´Ï´Ù. 


ÀÌÁ¦´Â ȨÆäÀÌÁö Á¦ÀÛµµ À¯´ÏÄÚµå(UTF-8) ÀÎÄÚµù ¹æ½ÄÀÌ ¼¼°èÀû Ãß¼¼À̸ç ÀÌ·¯ÇÑ Ãß¼¼¿¡ ¸ÂÃß¾î MySqlµµ ±âº»¾ð¾î¸¦ utf8(UTF-8 ÀÎÄÚµù) ¹æ½ÄÀ¸·Î º¯°æÇÏ¿´À¸¹Ç·Î, ȨÆäÀÌÁö¸¦ Á¾·¡ euc-kr µî Çѱ۷θ¸ Ç¥±âÇÏ´ø ¹æ½Äµµ UTF-8 ÀÎÄÚµù ¹æ½ÄÀ¸·Î ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÒ ¶§ ÀÔ´Ï´Ù. UTF-8 ÀÎÄÚµù ¹æ½ÄÀº Çѱ¹¾î, ÀϾî, Áß±¹¾î, ű¹¾î, ¾Æ¶ø¾î µî ¸¸±¹¾î Ç¥±â°¡ °¡´ÉÇÑ ¹æ½ÄÀÔ´Ï´Ù. 

APM¿¡¼­ UTF-8À» ±¸ÇöÇÏ·Á¸é ²Ï ¸¹Àº ºÎºÐÀ» ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù . 
´ÙÀ½Àº APM¿¡¼­ UTF-8 ±¸Çö ¹æ¹ý°ú ¼Ò½ºÄڵ带 ÷ºÎÇÕ´Ï´Ù. 


¿øº» ÀúÀÚ ¾Æ·¡ ȯ°æ¿¡¼­ Àû¿ë Å×½ºÆ® .
---------------- 
OS : WinXP SP2 
Apache : httpd-2.0.52
PHP : php-5.0.3
MySQL : mysql-4.1.11  
---------------- 

wono77 °°Àº ¹æ½ÄÀ¸·Î, ¾Æ·¡ ȯ°æ¿¡¼­ Àû¿ë Å×½ºÆ® ¼º°ø.(±ÛÃß°¡ 2006³â 5¿ù 24ÀÏ)

----------------------------- 
OS : Linux Redhat 9.0 
Apache : httpd-2.0.52-3 

PHP : php-5.1.2
MySQL : mysql-5.1.7-beta

----------------------------- 

1. apache ȯ°æÆÄÀÏ ÆíÁý (httpd.conf) 
2. php ȯ°æÆÄÀÏ ÆíÁý (php.ini) 
3. mysql ȯ°æÆÄÀÏ ÆíÁý (my.cnf) 
4. apache, mysql ¼­ºñ½º Àç½ÃÀÛ 
5. mysql¿¡¼­ ij¸¯Åͼ ȮÀÎ ¹× µðºñ»ý¼º 
6. php ¼Ò½ºÄڵ忡 mysql_query("set names utf8;"); ÇÔ¼ö Ãß°¡ 
7. php ¼Ò½º¿¡ Çѱ۹®ÀÚ¿­ÀÌ ÀÖÀ¸¸é ÆÄÀÏÀúÀåÇÒ¶§ UTF-8 ÆÄÀÏÇü½ÄÀ¸·Î ÀúÀå 
8. À¥ºê¶ó¿ìÁîÀÇ º¸±â-ÀÎÄÚµù-UTF-8·Î ¼±Åà

1. /etc/httpd/conf/httpd.conf ¿¡¼­ ij¸¯Åͼ ¼öÁ¤ 
/*------------ 
AddDefaultCharset UTF-8 

2. /etc/php.ini ¿¡¼­ ij¸¯Åͼ ¼öÁ¤ 
/*------------ 
;default_charset = "iso-8859-1" 
default_charset = "utf-8" 

3. /etc/my.cnf ¿¡¼­ ij¸¯Åͼ ¼öÁ¤ 
/*------------ 
[client] 
#password = your_password 
default-character-set=utf8 

[mysqld] 
init_connect=SET collation_connection = utf8_general_ci 
init_connect=SET NAMES utf8 
default-character-set=utf8 
character-set-server=utf8 
collation-server=utf8_general_ci 

[mysql] 
default-character-set=utf8 

4. ȯ°æº¯¼ö¸¦ ¸ðµÎ ¼öÁ¤ÈÄ apache ¹× mysql ¼­ºñ½º Àç½ÃÀÛ 
/*------------ 

5. mysql¿¡¼­ ij¸¯Åͼ ȮÀΠ
/*------------ 
# mysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 247 to server version: 4.1.10a 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 

mysql> use test 
Database changed 
mysql> show variables like 'c%'; 
+---------+-----------+ 
| Variable_name | Value | 
+---------+-----------+ 
| 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 | 
| concurrent_insert | ON | 
| connect_timeout | 5 | 
+---------+-----------+ 
12 rows in set (0.00 sec) 

* MySql¿¡¼­ µ¥ÀÌÅͺ£À̽º »ý¼º 
mysql>CREATE DATABASE µðºñ¸í DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


--------------------------------------------------------------------------------------

* Ãß°¡(Putty ¹× vi¿¡¼­ÀÇ utf8¼³Á¤) *

--------------------------------------------------------------------------------------

Putty ¼³Á¤

¼³Á¤¿¡¼­ Ã¢>º¯È¯ À» ¼±ÅÃÇÑ ´ÙÀ½, ¼ö½ÅÇÑ µ¥ÀÌÅ͸¦ ÀÌ ¹®ÀÚ¼ÂÀ¸·Î °¡Á¤À̶ó°í µÇ¾î ÀÖ´Â ¹Ú½º¿¡¼­ UTF-8À» ¼±ÅÃÇÑ´Ù.
ÀÌÁ¦ Å͹̳ο¡¼­´Â º¸¿©Áö´Â ¸ðµç ¹®ÀÚ¼ÂÀ» UTF-8·Î °¡Á¤ÇÏ°Ô µÈ´Ù.

½© ¼³Á¤

½© Ä¿¸Çµå ¶óÀο¡¼­ ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.

export LANG="ko_KR.UTF-8"

·Î±×ÀÎ µÉ ¶§ Ç×»ó UTF-8À» »ç¿ëÇÏ·Á¸é, ÀÚ½ÅÀÇ È¨µð·ºÅ丮ÀÇ .bashrc ÆÄÀÏ¿¡ À§ÀÇ ÇÑ ÁÙÀ» Ãß°¡ÇÑ´Ù.
.bashrc ÆÄÀÏÀ» ¼öÁ¤ÇßÀ» °æ¿ì,

source ~hayaloby/.bashrc

µîÀÇ ¸í·ÉÀ» ³»·Á¼­ °ð¹Ù·Î Àû¿ëµÇ°Ô ÇÒ ¼ö ÀÖ´Ù.
ÀÌÁ¦ ls µîÀÇ ¸í·É¿¡¼­ ¸®ÅϵǴ °ªµéÀ» ºñ·ÔÇؼ­ ½©¿¡¼­ÀÇ ¸®ÅϹ®ÀÚ¿­Àº UTF-8·Î Ç¥ÇöµÈ´Ù.

vi ¼³Á¤

ÀÌ »óÅ¿¡¼­

vi

¸¦ ÀÔ·ÂÇغ¸¸é ±ÛÀÚ°¡ ±úÁ® º¸ÀÌ°Ô µÈ´Ù.
vi ¿¡µðÅÍÀÇ ÀÎÄÚµùÀ» ¼³Á¤ÇØ ÁÖ¾î¾ß Çϴµ¥,
viÀÇ ¸í·É Áß¿¡ setÀ» ÀÌ¿ëÇؼ­ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.

set enc=UTF-8 set fenc=UTF-8 set tenc=UTF-8

enc´Â vi¿¡¼­ º¸¿©ÁÙ ¶§ »ç¿ëµÇ´Â ÀÎÄÚµùÀÌ°í tenc´Â Å͹̳ο¡¼­ »ç¿ëµÇ´Â ÀÎÄÚµùÀÌ´Ù. fenc´Â ¼öÁ¤ÇÏ·Á´Â ÆÄÀÏÀÇ ÀÎÄÚµùÀÌ´Ù.
Ç×»ó ÀÌ·¸°Ô ÀÛ¾÷À» ÇÏ·Á¸é Ȩµð·ºÅ丮ÀÇ .vimrc ÆÄÀÏ¿¡ Ãß°¡ÇØ ÁÖ¸é µÈ´Ù.

ÆÄÀÏ ÀÛ¾÷

ÀÌ »óÅ¿¡¼­ vi¿¡µðÅÍ·Î ÀÛ¾÷ÇÏ´Â ¸ðµç ÆÄÀÏÀº UTF-8·Î ÀÎÄÚµùµÇ¾î ÀúÀåµÈ´Ù.
'??'À» ÀÔ·ÂÇØ º¸¸é Àß ÀԷµÊÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. 

È®Àå¿Ï¼ºÇüÀ¸·Î µ¹¾Æ°¡±â

  • Putty ¼³Á¤
    ¼ö½ÅÇÑ µ¥ÀÌÅ͸¦ CP949·Î ¹Þ´Â´Ù.
  • ½© ¼³Á¤
    export LANG="ko_KR.eucKR"
  • vi ¼³Á¤
    set enc=euc-kr
    set fenc=euc-kr
    set tenc=euc-kr
    ¸¦ ¼ø¼­´ë·Î ¼³Á¤ÇØ ÁØ´Ù.

---------------------------------------------------------------------------------------

±â¾ïÇؾßÇÒ »çÇ×:


mysql 5.x¿¡¼­ utf-8ÀÌ ¾Æ´Ñ, utf8·Î Ç¥½ÃÇؾßÇÔÀ» ±â¾ïÇսôÙ~(4.x¿¡¼­´Â utf-8À̾úÀ½)

¾ÆÆÄÄ¡, php¿¡¼­´Â utf-8 ÀÔ´Ï´Ù.

phpÀÇ mysql connect ¼Ò½º¿¡¼­µµ $dbconn->query("set names utf8")À» ÇØÁà¾ß ÇÔÀ» ±â¾ïÇÏÀÚ.


by wono77. 2006-05-10.


* ±âÁ¸ÀÇ EUC-KR DB¸¦ UTF-8·Î º¯°æÇÏ±â  *

 

euc-kr¿¡¼­ ÀÛ¼ºµÈ db¸¦ ¹é¾÷Çؼ­ utf8¿¡ ³ÖÀ» »ý°¢Àε¥..ÀÌ°Ç Á¶±Ý´õ Çغ¸°í ±ÛÀ» ¿Ã¸®°Ú½À´Ï´Ù.

(TestÇغôµ¥ Àߵdz׿ä~^^)


euc-kr·Î ÀÛ¼ºµÈ db¸¦ ¹é¾÷Çؼ­ utf8 db¿¡ ³ÖÀ»¶§´Â..

mysqldump¸¦ ¶áÈÄ¿¡, ´ýÇÁ¶á ÆÄÀÏÀ» ´ÙÀ½ ½ºÅ©¸³Æ®¸¦ ÅëÇØ utf8·Î º¯È¯ÇØÁÝ´Ï´Ù.


½ºÅ©¸³Æ®¸í: iconv.sh

---------------------------------

#!/bin/sh

iconv -feuc-kr -tutf-8 $1 > out.txt

rm -rf $1

mv out.txt $1
---------------------------------


Áï ´ÙÀ½°ú °°ÀÌ ÇØÁֽøé out¶ó´Â ´ýÇÁ°¡ utf8·Î ¹Ù²ò´Ï´Ù.

$mysqldump -uroot -pÆнº¿öµå µðºñ¸í > out

$iconv.sh out


±× ÈÄ, ÀÌ ´ýÇÁ¸¦ utf8 ½Ã½ºÅÛÀÇ utf8 db¿¡ ³Ö¾îÁÖ½Ã¸é µË´Ï´Ù.^_^


by wono77. 2006-05-11.


* ±âÁ¸ÀÇ EUC-KR ¼Ò½º¸¦ UTF-8·Î º¯°æÇÏ±â  *


À§ÀÇ iconv.sh ½ºÅ©¸³Æ®·Î ÇØ´ç ¼Ò½º¸¦ Çϳª¾¿ º¯°æÇØÁÖ½Ã¸é µË´Ï´Ù.

Àüü Æú´õÀÇ ¼Ò½º ¹Ù²Ù´Â ½©½ºÅ©¸³Æ®´Â ¾Æ·¡¿Í °°½À´Ï´Ù.....=¤²=a;;;

(´Ü, À̶§ iconv°¡ Àû¿ë¾ÈµÇ´Â ¹®Àڼ¿¡ ´ëÇØ ÆÄÀÏÀÌ ³¯¾Æ°¡¹Ç·Î,

iconvÀÇ ¿É¼Ç Áß IGNORE°¡ ÇÊ¿äÇÕ´Ï´Ù.

-IGNORE ¿É¼ÇÀ¸·Î´Â Å×½ºÆ® ¾ÈÇغ½.

-½ÇÁ¦ ¾Æ·¡ Àüü µð·ºÅ丮 ¹Ù²Ù±â¿¡¼± ÆÄÀÏÀº Á¸ÀçÇÏÁö¸¸,

Áß°£ ³»¿ëÀÌ ³¯¾Æ°¡´Â ¹®Á¦ ¸î¹ß»ýÇßÀ½)


#!/bin/sh
for i in `ls $1`; do
    newname=`echo $i | tr "[A-Z]" "[a-z]"`
    iconv -feuc-kr -tutf-8 $1/$i > out.txt
    rm -rf $1/$i
    mv out.txt $1/$i
done

iconv -feuc-kr -tutf8//IGNORE


À§ÀÇ ÆÄÀÏ Çϳª ¹Ù²Ù±â iconv.sh´Â ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÕ´Ï´Ù.

$iconv.sh test.php


¼öÀÛ¾÷À¸·Î ÇÏ´Ù°¡ °¡²û, iconv¿¡ ¾ø´Â ¾Æ½ºÅ°°¡ ³ª¿Í¼­, ¿¡·¯°¡ ¶ß¸é¼­, ¿øº» È­ÀÏÀÌ »¶³ª´Â °æ¿ì´Â ÀÖÀ¸´Ï, ¹é¾÷ ¹Þ¾ÆµÎ°í Çϼ¼¿ä. ÁÖÀÇÇϽñæ....

10¿¡ ÇÑ°³´Â ³ª¿É´Ï´Ù. ¼Ò½º°¡ ¾öû±æ°Å³ª..Ư¼ö¹®Àڵ¼­...(ÇØ°á¹æ¹ýÀÌ ¾÷±×·¹À̵åµÈ iconvÀÇ ±â´É ¿É¼ÇÀ¸·Î ¾î¶»°Ô Çϴ°Š°°´øµ¥..Á÷Á¢ Å×½ºÆ®´Â Çغ¸Áö ¾Ê¾Æ¼­ Àß ¸ð¸£°Ú³×¿ä..)^^;


Ãâó : http://blog.naver.com/wono77/140024184001

Âü°í»çÀÌÆ®: http://database.sarang.net (¾ËÂ¥Ãʺ¸´Ô)


¼­¹ö óÀ½ ¼³Ä¡Çϸ鼭 ¿ÏÀü »ðÁúÇÏ´Ù°¡ ÃÑÁ¤¸® ¹öÀüÀ» ã¾Ò³×¿ä! °¨»çÇÕ´Ï´Ù ¤¾_¤¾

mysql_query("set names utf8;", $db);

Àú´Â ÀÌ°É »ðÁúÇÏ°í ÀÖ¾ú±¸¿ä..

´õ ã¾Æº¸´Ï±î my.cnfÀÇ mysqld¿¡´Ù°¡ 

init_connect = 'set names utf8'

Çصµ µÇ´Â°Å °°½À´Ï´Ù. 

ȯ°æÀº ¸Æos ŸÀÌ°Å¿¡ XAMPP ÀÔ´Ï´Ù -_-;;; (¿ø·¡ ´Ù utf8·Î ±ò¸®´Â ȯ°æÀ̾úÁÒ)