CODE CAVE

맥에서 파일 인코딩 EUC-KR UTF-8 일괄 변환 본문

ETC./TIP

맥에서 파일 인코딩 EUC-KR UTF-8 일괄 변환

코드케이브 2016. 11. 1. 13:06

기존에 저희 사이트가 파일 ~ 디비 모두 다 euc-kr 이였는데요.


차근차근 utf-8 로 바꿔가는 중입니다.


이번에 소개 해드릴 것은 파일들의 euc-kr 인코딩을 일괄적으로 utf-8로 바꾸는 작업입니다.


한개의 파일을 바꾸려면 맥 터미널에서 아래 1줄 명령만 실행하면 끝납니다.


$> iconv -c -f euc-kr -t utf-8 [기존파일이름] > [변환후나올 파일이름]


하지만 실제 사이트 파일 인코딩을 전체 변환할 예정이라면 하나하나 하긴 너무 힘들죠. :(




아래 스크립트는 폴더를 지정하면 그 폴더 아래 있는 모든 파일들의 인코딩을 변환해줍니다.


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


find "$1" -name "*.php" -o -name "*.html" -o -name "*.jpg" -o -name "*.png" -o -name "*.gif" -o -name "*.GIF" -o -name "*.JPG" -o -name "*.PNG" -o -name "css" -o -name "*.js" -o -name "*.txt" | while read filename

do

tempName=${filename}~temp~.txt

mv "$filename" "$tempName"

iconv -c -f euc-kr -t utf-8 "$tempName" > "$filename"

rm "$tempName"

done


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


1) 


먼저 위 스크립트를 vi나 메모장에 복붙해주세요.


만약 수정할게 있다면 확장자 정도 입니다. 스크립트 보면 -o -name "*.확장자"라는 부분이 있죠.


이걸 원하시는 파일 확장자로 변경하거나 추가하시면 됩니다.


저 쉘에 입력한 확장자들만 변환이 이루어지기 때문입니다.



2)


해당파일을 "파일명.sh" 로 저장합니다.


convert_encoding.sh 로 저장했다고 가정하죠.



3)


해당 파일이 있는 곳에서 터미널을 열고 


$> convert_encoding.sh 폴더명


위 명령을 실행하면 해당 폴더 밑에 있는 모든 파일들 중에 쉘에 입력된 확장자들을 가진 파일들만 euc-kr 에서 utf-8로 변환 됩니다.




간단하죠?! 


인코딩 변환, 맥에서도 어렵지 않습니다.


환경변수를 이용하여 쉘을 어느 경로에서든 실행할 수 있게 하는게 편하긴 하지만 이게 자주 쓸 쉘은 아니여서 이부분은 생략하겠습니다.