iconv 명령어
문자열 인코딩을 변환한다
Examples
# EUC-KR 파일을 UTF-8로 변환해 출력한다
iconv -f EUC-KR -t UTF-8 input-file
# EUC-KR 파일을 UTF-8로 변환해 파일로 저장한다
iconv -f EUC-KR -t UTF-8 input-file > output-file
# 사용 가능한 인코딩 목록을 출력한다
iconv -l
$ echo "안녕하세요 이 텍스트는 UTF-8 이지만 EUC-KR로 변환합니다." \
| iconv -f UTF-8 -t EUC-KR
ȳ Ʈ UTF-8 EUC-KR ȯϴ.
$ echo "안녕하세요 이 텍스트는 UTF-8 이지만 EUC-KR로 변환합니다." \
| iconv -f UTF-8 -t EUC-KR \
| iconv -f EUC-KR -t UTF-8
안녕하세요 이 텍스트는 UTF-8 이지만 EUC-KR로 변환합니다.
튜토리얼
다음과 같은 UTF-8 파일을 만들어 둔다.
$ cat input-utf-8.txt
가나다
abc
라마바
[[/cmd/file]] 명령으로 조사해보면 UTF-8 파일이라는 것을 알 수 있다.
$ file input-utf-8.txt
input-utf-8.txt: Unicode text, UTF-8 text
이 UTF-8 파일을 EUC-KR로 변환해 파일로 저장해 보자.
$ iconv -f EUC-KR -t UTF-8 input-utf-8.txt > output-euc-kr.txt
변환된 파일을 확인해보자.
$ cat output-euc-kr.txt
??????
abc
??
알아볼 수 없는 걸 보면 변환이 된 것 같다.
이번에는 이렇게 생성된 EUC-KR 파일을 UTF-8로 변환해서 확인해보자.
$ iconv -f EUC-KR -t UTF-8 output-euc-kr.txt
가나다
abc
라마바
UTF-8 → EUC-KR → UTF-8 과정을 통해 원래의 내용을 확인할 수 있는 것을 보니 변환이 잘 된 것 같다.
그런데 이 파일은 [[/cmd/file]] 명령으로 조사해 보면 EUC-KR 이라고 나오지 않는다.
$ file output-euc-kr.txt
output-euc-kr.txt: ISO-8859 text
[[/cmd/file]]가 EUC-KR을 인식하지 못하기 때문이다.
EUC-KR 도 인식해주는 도구를 사용할 필요가 있고, [[/cmd/chardetect]]가 이 목적에 적합할 수 있다고 생각한다.
pip install chardet
# 또는 pip3 로 설치
pip3 install chardet
설치가 완료된 이후 [[/cmd/chardetect]]로 확인해보니 다음과 같았다.
$ chardetect input-utf-8.txt output-euc-kr.txt
input-utf-8.txt: utf-8 with confidence 0.99
output-euc-kr.txt: EUC-KR with confidence 0.99