파일/파일명/디렉토리명 euc-kr -> utf-8 상호 변환하기

|
서버를 교체하면서 euc-kr 로 되어 있는 것들(?)을 utf-8로 모두 바꾸기로 하고,

꽤나 할 일이 많을것이라 생각했는데 해보니 의외로 간단하였다.

euc-kr <-> utf-8 변환....

꽤나 귀찮은 작업이라 생각했는데... 꼭 그렇지 만은 않았다.

Mysql의 모든 DB는 mysqldump를 이용해 통째로 mysqldump 해서 받은후

vi로 읽어.. euc-kr 문구를 utf-8로 죄다 변경하거나..
(:s/euc-kr/utf-8/g        <--- ^^ )

또는 sed를 이용해 변경한다.
sed  -e 's/euckr/utf8/g' -i 백업파일

#iconv -c -f euc-kr -t utf-8 원본파일 > 대상파일

변경한 후에

#mysql -u관리아이디 -p --default-character-set=utf8 < 파일명

이런식으로 죄다 백업/복원하여 한방에 끝내고

아래 내용을 간단한 파일로 저장하여..

#vi euckr2utf.sh

find . -type f -name "*.html" -or -name "*.php" -or -name "*.inc" | while read srcfile; do
cp ${srcfile} ${srcfile}.bak
iconv -c -f euc-kr -t utf-8 ${srcfile}.bak > ${srcfile}
rm ${srcfile}.bak
done
( 확장자를 추가/제거 하고 싶으면   -or -name "*.확장자"  를 추가하고 빼면 된다.)

euc-kr로 되어있는 파일이 존재하는 디렉토리 에 복사해 놓고 실행하면, 서브 디렉토리까지 한방에 변환.

끝으로
화일명/디렉토리명을 utf-8로 변경하는것은

convmv 를 yum 으로 인스톨한후...
해당 디렉토리로 이동

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

해주면 하위 디렉토리까지 싹~~~~

단, utf-8은 euc-kr 보다 byte수를 더 먹기 때문에... DB 테이블필드/Key 를 조정해주어야 한다는것과
html 코딩을 좀 손봐야 한다는게 노가다더라...

- 끝 -
And