Table of Contents |
---|
개요
GNU 에서 만든 문자열 변환 유틸리티(iconv) 및 라이브러리(libiconv)
이다. 리눅스에는 glibc 에 포함되어 있으며 윈도는 gnuwin32 에서 받을 수 있다.
iconv 유틸리티 사용
지원하는 encoding 목록 보기
...
Note |
---|
iconv 는 Multi Byte 한국어 인코딩인 EUC-KR과 CP949, ISO-2022-KR, JOHAB 방식을 모두 지원 |
변환 옵션
Panel | ||
---|---|---|
| ||
--from-code, -f encoding - 변환할 원본 인코딩을 명시, iconv 는 encoding detect 유틸이 아니므로 원본 인코딩을 정확하게 명시해야 함 --to-code, -t encoding - 변환될 인코딩을 설정 --output, -o filename - 출력 파일명, 지정되지 않으면 콘솔로 출력됨 encoding 은 -l 로 표시되는 인코딩명을 참조 |
Info |
---|
encoding 뒤에 //TRANSLIT, //IGNORE 두 개의 옵션을 추가할수 있다.
|
사용예
CP949
...
로 된 한글 문서를 UTF-8 로 변환
Code Block |
---|
iconv -f CP949 -t UTF-8 -o output.txt input.txt |
Note |
---|
Windows 용 iconv 는 오래 되서 -o 옵션을 지원하지 않는다. -o 대신 파이프로 출력을 리다이렉션하자. iconv -f CP949 -t UTF-8 input.txt > output.txt |
UTF-8로 된 문서를 US-
...
ASCII 로 변환하고 없는 문자는 대치
Code Block |
---|
iconv -f UTF-8-t US-ASCII//TRANSLIT -o output.txt input.txt |
...
C 언어에서 사용
glibc 안에 iconv 가 구현되어 있으므로 C 언어에서 사용할 수 있다.
Expand |
---|
PHP 에서 사용
PHP 에는 libiconv 가 binding 되어 있으므로 사용할 수 있다. (참고: http://php.net/manual/en/function.iconv.php)
...
Code Block |
---|
string iconv ( string $in_charset , string $out_charset , string $str ) |
...
다음 PHP 파일을 UTF8 로 저장후에 실행
Code Block | ||||
---|---|---|---|---|
| ||||
<?php $text = "똠방각하"; echo 'Original : ', $text, PHP_EOL; echo 'CP949: ', iconv("UTF-8", "CP949", $text), PHP_EOL; # 아래 문장에서 변환 에러 발생 echo 'EUC-KR: ', iconv("UTF-8", "EUC-KR", $text), PHP_EOL; ?> |
실행하면 똠은 EUC-KR 에 없는 문자이므로 EUC-KR 로 변환시 //TRANSLIT 옵션이 없을 경우 아래와 같이 에러가 발생되며 //TRANSLIT 옵션이 추가되면 EUC-KR의 비슷한 문자로 대치된다.
Code Block | ||
---|---|---|
| ||
$ php iconv-test.php Original : 똠방각하 CP949: EUC-KR: PHP Notice: iconv(): Detected an illegal character in input string in iconv-test.php on line 6 |
...