• ÇÁ¸®Ä«¿îÅÍ
  • Ç÷¡½ÃºÏ
  • ÇÁ¸®º¸µå
  • Àü±¤ÆÇ
  • À¥°øºÎ¹æ
  • Ä¿¹Â´ÏƼ
euc-kr -> utf-8 ·Î ÀÌÀüÇϱâ. 2009.10.12 01:27
±Û¾´ÀÌ : ¿î¿µÀÚ Á¶È¸ : 202 Ãßõ : 0
utf-8 ·Î ÀÌÀüÇϱâ.

1. MySQL

-- 5.x --
- euckr ½ºÅ°¸¶ ¹é¾÷
mysqldump --all-databases --no-data --default-character-set=euckr -p > backup.scheme.sql

- euckr ÀÚ·á ¹é¾÷
mysqldump --all-databases --no-create-db --no-create-info --default-character-set=euckr -p > backup.data.sql

À¢¸¸ÇÏ¸é »ç¿ëÀÚ°èÁ¤ Á¤º¸´Â ¾ÏÈ£±îÁö È®½ÇÇÏ°Ô ¾Ë°íÀÖÀÚ.
GRANT ALL Äõ¸®¹®À» Á÷Á¢ ÀÛ¼ºÇÏ¿© °¡Áö°í ÀÖÀÚ.

- UTF-8 À» Á¦´ë·Î Áö¿øÇϱâ À§ÇØ ¹öÀüÀ» 5.x ·Î ¿Ã¸°´Ù.
(varchar(1) Àº 1byte °¡ ¾Æ´Ñ ÇѱÛÀÚ¸¦ ÀǹÌÇÏ°Ô µÈ´Ù.
set names ¸¸À¸·Î Ŭ¶óÀ̾ðÆ®ÀÇ Ä³¸¯ÅͼÂÀ» ¸ÂÃâ ¼ö ÀÖ´Ù.)
= backup.scheme.sql =
Å×À̺í Áß BLOB Çü½ÄÀ̳ª BINARY ¼Ó¼º Çʵ忡 ¹®ÀÚ¿­ÀÌ µé¾î°¡´Â °÷ÀÌ ÀÖ´Ù¸é,
TEXT Çü½ÄÀ¸·Î ¹Ù²Ù°Å³ª BINARY ¼Ó¼ºÀ» ¾ø¾Ø´Ù.
DEFAULT '0' °°Àº À߸øµÈ µû¿ÈÇ¥¸¦ °íÄ£´Ù.
TYPE=MyISAM °°Àº°Ç ENGINE=MyISAM À¸·Î ¼öÁ¤ÇÑ´Ù.
¸Ç À§ÂÊÀÇ SET NAMES euckr À» Á¦¿ÜÇÑ ¸ðµç CHARACTER SET ÀÇ euckr À» utf8 ·Î ¼öÁ¤ÇÑ´Ù.

cat backup.scheme.sql | mysql -p --default-character-set=utf8
mysql ¼³Á¤ÀÌ utf8 ±âÁØÀÌ°í, sql ¹®¿¡ SET NAMES euckr ÀÌ µé¾îÀÖ´Ù.
Áï, »ý¼ºÀº utf8 ·Î µÇÁö¸¸, µ¥ÀÌÅÍ°¡ euckr À̶ó´Â°ÍÀ» ¾Ë°í ÀÖÀ¸¹Ç·Î,
ÀÚµ¿À¸·Î º¯È¯µÇ¾î µé¾î°£´Ù.
ÀÌ´Â iconv ¸¦ ÀÌ¿ëÇÑ º¯È¯º¸´Ù ¾ÈÀüÇÏ´Ù.
(MySQL ÀÇ ¿¾³¯ ¹öÀüÀº ¸ÖÂÄÇÑ ÇѱÛÁ¶Â÷ escape ½ÃÄÑ ³õ´Â °æ¿ì°¡ ÀÖ´Ù.)

= backup.data.sql =
cat backup.data.sql | mysql -p --default-character-set=utf8

- »ç¿ëÀÚ°èÁ¤À» GRANT ALL ¹®À¸·Î ´Ù½Ã ¸¸µé¾îÁØ´Ù.
root Áö¿ö¹ö¸®Áö ¾Ê°Ô ÁÖÀÇ.


-- old --
ÀÌÀü MySQL ¿¡ charset °ü·Ã ¿É¼ÇÀÌ ¾ø´Ù¸é,
½ºÅ°¸¶´Â
cat backup.scheme.sql | mysql -p --default-character-set=utf8
µ¥ÀÌÅÍ´Â
cat backup.data.sql | mysql -p --default-character-set=euckr
·Î º¹±¸ÇÏ¸é µÈ´Ù.

½ºÅ°¸¶´Â ²À ²Ä²ÄÈ÷ »ìÆ캸°í ÆíÁýÇÏÀÚ.
½ºÅ°¸¶¿¡ Çѱ۷ΠµÈ ÁÖ¼® °°Àº°ÍÀÌ ÀÖ´Ù¸é,
Áö¿ö¹ö¸®´Â°ÍÀÌ ¼Ó ÆíÇÏÁö¸¸,
»ì¸®°íÀÚ ÇÑ´Ù¸é, ÆíÁýÀÌ ÇÊ¿äÇÏ´Ù.
backup.scheme.sql À» ¿­°í ¸Ç À§¿¡
SET NAMES euckr; À» Àû¾îÁÖÀÚ.
´Ù¸¥ ÁÙ¿¡ SET NAMES °¡ ¾ø¾î¾ß ÇÑ´Ù.
±×¸®°í CREATE DATABASE, CREATE TABLE ¹®¿¡ ÀÏÀÏÈ÷ CHARACTER SET utf8;
À» ºÙ¿©ÁÖÀÚ.
ÆíÁý½Ã ÆíÁý±â¿¡ ÀÇÇØ Ä³¸¯ÅÍ ¼ÂÀÌ º¯°æµÇÁö ¾Êµµ·Ï,
º° ±â´É ¾ø´Â ÆíÁý±â¸¦ ÀÌ¿ëÇÏÀÚ.

2. ÆÄÀÏ
¸ðµç ÆÄÀÏÀÇ ³»¿ëÀ» utf8 ·Î ¹Ù²ÙÀÚ.
Á¶°Ç¿¡ µû¶ó µ¿ÀÛÀÌ ´Þ¶óÁö¹Ç·Î php ¸¦ ÀÌ¿ëÇÏÀÚ.
/toutf.php
<?php

$f = $_SERVER['argv'][1];
if(!file_exists($f)) {
    echo $f." file not found.\n";
}

$text = file_get_contents($f);
$text8 = @iconv('CP949', 'UTF-8//IGNORE', $text);

$cnt = strlen($text);
$cnt8 = strlen($text8);
if($cnt <= $cnt8) {
    // Á¦´ë·Î º¯°æÀÌ µÇ¾ú´Ù¸é ¿ë·®ÀÌ Ä¿Á³À» °ÍÀÌ´Ù.
    // ¿ë·®ÀÌ °°´Ù¸é ÇѱÛÀÌ ¾ø´Â °ÍÀÌ´Ù.
    rename($f, $f.'.euckr'); // ¹é¾÷
    file_put_contents($f, preg_replace('/charset=euc-kr/i', 'charset=utf-8', $text8));
    echo $f." file is converted.\n";
} else {
    // ¿ë·®ÀÌ ÀÛ¾ÆÁø´Ù¸é À߸øµÈ °ÍÀÌ´Ù.
    $fp = fopen('/error.txt', 'a');
    fwrite($fp, $f."\n");
    fclose($fp);
}

?>

find /home -type f -name "*.php" -exec php /toutf.php "{}" \;
find /home -type f -name "*.inc" -exec php /toutf.php "{}" \;
find /home -type f -name "*.txt" -exec php /toutf.php "{}" \;
find /home -type f -name "*.html" -exec php /toutf.php "{}" \;
find /home -type f -name "*.htm" -exec php /toutf.php "{}" \;
find /home -type f -name "*.js" -exec php /toutf.php "{}" \;
find /home -type f -name "*.css" -exec php /toutf.php "{}" \;


ÇöÀç UTF-8 ÀÌ ¾Æ´Ñ °÷ÀÌ ¾ø±â ¶§¹®¿¡,
±â¾ïÀ» ´õµë¾î ´ëÃæ ¸¸µé¾ú´Ù.
Àû¿ëÀü ¹é¾÷Àº Çʼö´Ù.

¿¡µðÅÍ´Â EmEditor, DreamWeaver CS3 ¸¦ ÃßõÇÑ´Ù.
FTP ´Â WinSCP 4 ¸¦ ÃßõÇÑ´Ù. À©µµ Ä¿¸à´õ ¸ðµå·Î Çϸé ÆÄÀϸíÀÌ ÁöX °°¾Æµµ Àß ¿Ã¸®°í ¹Þ¾ÆÁú °ÍÀÌ´Ù.

WinSCP ÀÇ ¿¡µðÅÍ·Î EmEditor ¸¦ ¼³Á¤ÇÏ¸é ¹«ÀûÀÌ´Ù.
EmEditor ´Â ±â´ÉÀÌ Á¶±Ý Á¦ÇÑµÈ free ¹öÀüÀÌ ÀÖ´Ù.
ÀλýÀº ª½À´Ï´Ù.
±×·¯¹Ç·Î ´Ù¸¥ »ç¶÷ÀÌ ¿ä±¸ÇÏ´Â »îÀ» »ì¸é¼­ ½Ã°£À» ³¶ºñÇؼ­´Â ¾È µË´Ï´Ù.
µ·°ú ¸í¿¹¸¦ ¾òÁö ¸øÇÏ´õ¶óµµ ³¡±îÁö ÀÚ½ÅÀÇ ±æÀ» °íÁýÇϽʽÿÀ
¸ñ·Ï À­±Û ¾Æ·§±Û
³»¾Ë FREECOUNT.NET ÇÁÄ«³Ý »ý±ä³¯ 2003.12.20 Ȩ | Ä«¿îÅÍ | Ç÷¡½ÃºÏ | ÇÁ¸®º¸µå | Àü±¤ÆÇ | À¥°øºÎ¹æ | Ä¿¹Â´ÏƼ | ÂÊÁöÇÔ