[UTF8] 리눅스 convmv를 이용한 UTF-8 캐릿터셋으로 변경 CentOS



출처 : http://blog.naver.com/ssik425/10088230675

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로 변경하는 작업은 생각만큼 쉬운 작업이


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

기해야 한다.

핑백

  • iconv | xellos35's Karmographe 2012-10-16 11:04:12 #

    ... ddot; Leave a Comment · In Subtitle http://www.gnu.org/software/libiconv/ http://forbis.egloos.com/3467967 If you enjoyed this article, please consider sharing it! Leave a Reply Cance ... more

덧글

댓글 입력 영역