리눅스

문자 인코딩

작성자
heukchoo
작성일
2021-01-17 23:46
조회
754
utf-8과 euc-kr

utf-8은 조합형 인코딩 방식
euc-kr은 완성형 인코딩 방식

조합형은 초성, 중성, 종성을 각각 인식하여 문자로 조합(예: ㄱ+ㅣ+ㅁ = 김)
조합형은 초성, 중성, 종성의 조합 방법에 따라 모든 한글을 표현가능, 확장성이 좋음

완성형은 이미 조합된 문자를 인식(예: 김)
완성형은 등록된 문자만 인식하므로 경우에 따라 표현하지 못하는 문자가 존재

utf-8는 리눅스와 대부분의 시스템, 개발환경에서 사용
euc-kr은 윈도우에서 사용


자세한내용 확인

http://studyforus.tistory.com/167






문자 인코딩 방식 차이에 따른 문제점


윈도우에서 작성한 euc-kr 인코딩의 한글 문서를 utf-8을 사용하는 리눅스에서 읽을 수 없다.


리눅스에서 문자 인코딩 방식 확인


locale 명령으로 LANG 등의 변수에 문자 인코딩 방식 확인 또는 echo 로 LANG 변수를 직접 확인
$locale

LANG=ko_KR.UTF-8
LANGUAGE=
.
.

$echo $LANG

ko_KR.UTF-8
ko_KR.UTF-8은 한글을 지원하는 utf-8 문자 인코딩 방식


locale -a 는 사용가능한 모든 문자 인코딩을 보여주며 grep 명령으로 한글 지원 코딩확인 가능
$locale -a | grep ko

ko_KR.euckr
ko_KR.utf8
.
.
ko_KR.utf8이 ko_KR.UTF-8에 대응된다.

ko_KR.euckr 도 있긴하지만 호환 문제가 발생할 수 있다.


VI 편집기에서 문자 인코딩 설정


다음의 vi 편집기 환경설정 파일에서 설정 가능

/etv/vim/vimrc


환경설정 파일에 다음의 코드를 추가 또는 수정한다.

set encoding=utf-8

set fileencofings=euc-kr,utf-8

fileencoding을 위와 같이 설정하면 두 가지 문자 인코딩 방식의 파일을 모두 읽을 수 있다.


파일의 문자 인코딩 방식 확인과 변경


file 명령으로 파일의 문자 인코딩 방식을 확인
$file -bi 파일명

text/plain; charset=iso-8859-1
iso-8859-1은 euc-kr을 의미한다.


iconv 명령으로 문자 인코딩 변환이 가능
$iconv -c -f euc-kr -t utf-8 파일명1 > 파일명2
utf-8을 euc-kr로 변경하는 것도 가능하다.


iconv 명령을 통해 윈도우에서 작성된 한글 문서를 리눅스에서 읽을 수 있고 반대의 경우도 가능하다.
전체 0