아주 짧은 팁이지만..
의외로 구글에 검색해보니 방법이 잘 나와 있는 곳이 없어서 여기 올려봅니다.
우선 인코딩을 바꾸기 위해서 도구가 하나 필요합니다. iconv 라는 툴인데..
위 링크를 클릭하시면 다운로드 받을수 있습니다.
먼저 위의 도구를 설치하시고.. 설치한 폴더로 가셔서 bin 이라는 폴더 아래에 보면 iconv.exe 파일이 보일겁니다.
이 파일이 우리가 사용할 도구입니다.
그리고 대량의 파일들을 자동화 시키기 위해서 아래의 내용으로 배치파일 하나를 만들어줍니다.
for /f "delims=" %%f in ('dir /s /b *.htm ^| findstr /e .htm') do iconv -f EUC-KR -t UTF-8 "%%f" > "%%f.text"
위의 내용은 상황에 맞게 적절하게 바꿔야합니다.
그러려면 위의 배치파일을 좀 분석할 필요가 있는데요..
우선 dir /s /b *.htm 가 뜻하는건..
배치파일이 들어있는 폴더와 그 아래 폴더까지 전부 뒤져서
확장자가 .htm이거나 .htm으로 시작하는(예를 들어 .html 같은)( 업데이트: 바로 뒤에 ^| findstr /e .htm 구문이 추가되어서 정확히 .htm 인 파일들에 대해서만 적용됩니다. ) 모든 파일들의 전체 목록을 Fullpath로 출력시킨다는 뜻이구요..
"delims=" 이 뜻하는건 띄워쓰기가 포함된 파일이름이나 경로를 위한 것입니다..
(도스창 열어서 이 명령을 우선 한번 돌려보시면 이해가 갈겁니다.)
for 명령으로 이 목록에서 하나씩 불러와서(불러온 파일은 %%x 변수에 들어가는거죠..)
이걸 iconv 라는 도구를 통해 EUC-KR 에서 UTF-8 로 바꾼다음, (다른 인코딩들도 전부 지원합니다. 원하는 인코딩을 적으면 됩니다.)
원래 파일이름 뒤에 .text 라는 확장자를 하나더 붙여서 원래 파일있는 곳에 다른이름으로 저장한다는 의미입니다.
(iconv.exe 가 설치되어 들어있는 폴더(bin)는 당연히 path 에 걸려 있어야 되겠지요..)
전반적인건.. 테스트 폴더를 하나 만들고 테스트 파일을 몇개 만들어서 이리저리 바꾸시면서 해보면 아마 이해되실 거예요.
이렇게 하면 대량의 text 파일들에 대해서 한방에 인코딩을 전부바꿔줄수 있습니다.
(참고로 iconv 라는 도구는 원래 파일과 인코딩을 바꿔서 저장할 파일의 위치와 이름이 전부 동일하면 작동하지 않습니다.)
짧은 팁이었습니다..
// 내용이 좀 업데이트 되었습니다.
// 저도 notepad++ 를 평소에 쓰고 있기 때문에 파일 한 두개를 인코딩 바꾸는건 일도 아닙니다만..
// 이런 방식으로 인코딩을 바꾸는 이유는 제목에도 나와 있지만.. 약 7만개의 파일이 하위 폴더에 골고루 퍼져있는데 이 모든 파일들의
// 인코딩을 바꿔야만 했기 때문입니다. 이런 방식으로 하면 하위폴더도 포함해서 한방에 가능합니다.
// 도움이 되시길...
UTF-8 뿐만 아니라 인터넷 사이트에서 내려 받은 자료의 이름이 URL Encoding 되었을 때도 유용하지요.
http://funo.tistory.com/entry/RED-UTF8-ANSI
chiffon님께서 알려주신툴은 써봤다가 하위폴더의 파일들까지 같이 변환해주지는 않아서.. 포기했습니다.
값이 하나도 안 아깝긴 한데 맥 개발할때 손이 너무 허전해요
서브라임도 좋은데 인코딩 문제만 좀 해결해줬으면 좋겠네요.. ㅠ
좀더 자동화하려면 인코딩이 명시되었는지 확인하고, 인코딩 지시대로 파일내용이 유효한지 확인하고, 필요시 인코딩 변환이 필요할 것 같습니다.
from CLiOS