본문 바로가기
Development

EUC-KR 한글 인코딩을 UTF-8로 일괄 변경

by 신군. 2018. 4. 10.
반응형
EUC-KR 한글 인코딩을 UTF-8로 일괄 변경하려면?

윈도우에서 리눅스로 파일 전송 시 우리를 귀찮게 하는 것 중 하나가 바로 한글 인코딩 차이로 인한 한글 깨짐 현상이다. 
인코딩 설정이 맞지 않으면 파일명과 파일 내용이 깨질 수 있는데 여기서는 파일 내용이 깨지는 문제에 대해 다루도록 한다. 

인코딩 설정을 변경하기 위해 필요한 것은 iconv이다.
 Wikipedia에서 iconv 설명을 보면 서로 다른 character encoding 사이의 변환을 수행해주는 것을 알 수 있다. 

<출처:Wikipeida>

먼저 파일이 하나인 경우에는 아래의 명령어를 통해 인코딩을 변경이 가능하다.

$ iconv -c -f euc-kr -t utf-8 test.txt > test-utf8.txt

변경할 파일이 많은 경우 위의 명령을 하나씩 입력하여 변경하는 것은 어려운 일이다. 
이 경우 아래의 명령을 이용하면 폴더 내의 모든 파일을 한 번에 변경이 가능하다.

$ find . -type f -exec iconv -f euc-kr -t utf-8 "{}" -o path/to/destination/"{}" \;

이때 주의할 점은 find 명령어가 하위 폴더까지 검색을 하므로 
destination 폴더가 변환하려는 파일과 같은 폴더 또는 하위에 있으면 이미 변환한 파일을 또다시 변환하려 한다는 것이다

이로 인해 다음과 같이 출력 파일을 열 수 없다는 메시지가 나오는데, 
이는 이미 해당 파일들이 utf-8로 변환되었기에 destination 폴더에서 euc-kr로 인코딩된 파일을 찾을 수 없다는 내용이므로
해당 메시지를 무시하거나, destination 폴더를 상위에 위치시키면 해결된다.


그리고 '위치에 잘못된 입력 순서열이 있음'과 같은 메시지가 나오며 변환이 완료되지 않는 경우가 있는데, 

iconv: 33106774 위치에 잘못된 입력 순서열이 있음

이 때는 -c 옵션을 추가하면 오류를 무시하고 변환을 진행하게 된다.


반응형

'Development' 카테고리의 다른 글

Ruby 처음 배우기 : 윈도우에 Ruby 설치하기  (0) 2019.07.21
[Markdown 문법] 3. 개행(New line)  (0) 2019.07.21