UTF-8 캐릭터셋으로 변경하기위한 방법은 여러가지 작업을 거쳐야하는 까다로운 작업이다. 

새로운 사이트를 구축하는데는 별다른 어려움이 없지만

기존사이트를 이전하기 위해서는 알게 모르게 많은 수작업이 

들어간다. 

만일 HTML 파일내용을 EUC-KR에서 UTF-8로 변경해야 할 

경우라면 다음과 같은 명령을 사용한다.

iconv -c -f euc-kr -t utf-8 a.html > a.html.utf8

iconv 명령은 여러개의 파일을 동시에 변환할 수 가 없다. 따라서

여러개의 파일 혹은 디렉토리상의 HTMl을 변경하고자 할때는

다음과 같이 크립트를 작성하여 변환을 해야 한다. 


#!/bin/bash
for DIR in `find . -type f `
do
echo "$DIR done............................"
iconv -c -f euc-kr -t utf-8 $DIR > aa
rm -f $DIR ; mv aa $DIR


done


iconv옵션중에 "-c"를 붙여주는 이유는 간혹 잘못입력된 한글 혹은

특수문자의 경우 UTF-8 변환이 되지 않는다. 이와같은 경우로

파일이 삭제되는 경우를 방지하기 위해 -c를 주면 변환할 수 없는

파일이 있더라도 강제로 변환하기 위함이다.

위처럼 파일의 내용을 변경했으면 meta 태그를 변경하는

과정이 필요하다. 아무리 실제 파일 내용이 UTF-8일지라도 

이걸 표현하는 Explorer 나 Firefox에서는 태그가 제대로 

표현되어 있지 않으면 UTF-8로 표현되지 못한다. 

따라서 다음과 같은 명령으로 meta의 character-set을 변경해야

한다.


find . -name '*.html' -exec perl -pi -e 's/euc-kr/utf-8/g' {} \;


다음으로 간혹 개념없는 유저들이 올리는 한글이름으로 된

파일을 UTF-8파일명으로 변경해야 한다. iconv는 파일의

실제 내용을 utf-8로 변경했을뿐 파일명은 다른 문제라서

다음과 같은 명령으로 파일명을 변경해야 한다.


convmv -r -f euc-kr -t utf-8 --notest *

convmv의 경우 리눅스상의 기본 명령어가 아니므로 www.rpmfind.net 등에서 rpm을 검색하여 설치해야 한다. 




주의사항 : UTF-8로 변경하는 작업은 생각만큼 쉬운 작업이


아니다. 지금 완전히 정착된 것도 아니고 해서 변환에 신중신중을

기해야 한다.

출처 : http://blog.naver.com/ssik425?Redirect=Log&logNo=10088230675


+ Recent posts