반응형
[Locale] 언어 설정(ko_KR : euckr / utf8)
언어설정으로 꽤 애를 먹곤 했는데,
구글상에서 서치하다가 매우 잘 설명해 놓은 사이트를 보고
하나씩 하다보니 잘되넹....^^;;
ko_KR / ko_KR.euckr / ko_KR.utf8 : 설정에 대한 예를 중심으로 설명한다.
연관 포스트 :
사전 설정 : apt-get : 최신 설정되어있으면 자연 스킵하므로 그냥 수행해도 무방할 것으로 생각함.
sudo apt-get update
sudo apt-get -y install language-support-fonts-ko language-support-input-ko <== apt 사이트를 바꿔 보아도 나는 설치가 안됨
sudo apt-get -y install language-pack-ko language-pack-ko-base language-pack-gnome-ko language-pack-gnome-ko-base
sudo apt-get -y install locales
locale 확인 : 아래 3개가 보이면 된 것임. 없을 경우에 다음을 진행
[/home/firstpw] locale -a
ko_KR
ko_KR.euckr
ko_KR.utf8
locale 설정 : 아래 2가지가 없을 경우에 다음을 진행
[/home/firstpw] sudo dpkg-reconfigure locales
[*] ko_KR.EUC-KR EUC-KR
[*] ko_KR.UTF-8 UTF-8
[*] 변경은 spacebar
-> 엔터
기본 설정 선택(원하는 것)
ko_KR.UTF-8
vim 설정 :
[/home/firstpw] vi ~/.vimrc
set encoding=utf-8
쉘 설정 : 아래 내용 추가
[/home/firstpw] sudo vi /etc/environment
LANG="ko_KR.utf8"
LANGUAGE="ko_KR;ko;en_GB;en"
LC_ALL="ko_KR.utf8"
export LANG LC_ALL LANGUAGE
=> 반영하기 위해서 재로그인 필요(다른 방법보다 재로그인이 제일 명확임)
locale 생성 :
[/home/firstpw] sudo vi /var/lib/locales/supported.d/ko <== 필요시 아래처럼 변경
ko_KR.UTF-8 UTF-8
ko_KR.EUC-KR EUC-KR
[/home/firstpw] sudo locale-gen <== 리스트에서 아래 내용 확인
ko_KR.EUC-KR... done
ko_KR.UTF-8... done
locale 수동 생성 :
아래 파일들 존재 확인 (인터넷에서 검색후 다운가능:참고> 다운 링크 : )
/usr/share/i18n/locales/ko_KR
/usr/share/i18n/charmaps/EUC-KR.gz
/usr/share/i18n/charmaps/UTF-8.gz
[생성]
localedef -cvi ko_KR -f EUC-KR ko_KR
localedef -cvi ko_KR -f UTF-8 ko_KR
[삭제] 참고용
localedef --delete-from-archive ko_KR.euckr
백업차원에서 카피함. : 실제 원본 링크는 없어진 것으로 보임.
------------------------
[펌] KSC5601, EUC-KR, UTF-8 구분
ASCII 0x00 ~ 0x7F
ASCII = American Standard Code for Information Interchange
아스키 코드는 ISO 8859-1 (Latin-1) 표준과 동일
KSC5601
한글 완성형 표준(한글 2,350자 표현)
한국공업표준 정보처리분야(C)의 5601번 표준안
전각문자/기호/자소/선문자 0xA180 ~ 0xAFFF
한글영역 0xB0A1 ~ 0xC9FF
한자영역 0xCA80 ~ 0xFDFF
KSC5636
영문자에 대한 표준
한국공업표준 정보처리분야(C)의 5636번 표준안
기존 ASCII Code에서 역슬래쉬(\)를 원(\) 표시로 대체
EUC-KR
Bell Laboratories에서 유닉스 상에서 영문자 이외의 문자를 지원하기 위해 제안한 확장 유닉스 코드(Extend UNIX Code)중 한글 인코딩 방식 영문은 KSC5636로 처리하고 한글은 KSC5601로 처리
EUC-KR = KSC5601 + KSC5636
Unicode
유니코드 컨소시움에서 제정한 전세계 문자에 대한 통합 문자집합
세계표준화기구(ISO)의 ISO 10646 표준과 동일
UTF-8
유니코드를 표현하기 위한 문자 인코딩
인코딩과 표준을 구분없이 주절주절 늘어놓았군요.
문자집합을 정의하는 표준 명칭과 인코딩으로 정리를 해볼까요.
(표준은 코드의 영역을 정의하고, 인코딩은 이를 컴퓨터로 표현하는 방식이라고 제 나름대로 규정하였습니다.)
표준: ASCII(ISO 8859-1), 유니코드(ISO 10646), 완성형 한글(KSC5601)
인코딩: iso-8859-1, UTF8, EUC-KR
영어는 iso-8859-1로 인코딩되었다고 하고, 유니코드는 요즘 대부분의 경우 UTF-8로 인코딩합니다. 완성형은 EUC-KR이라고들 하지요. 실제로 iso-8859-1이나 EUCKR의 인코딩은 표준과 동일해서 별도의 인코딩이라고 부르기도 어렵습니다. 하지만 유니코드의 경우 UTF-8은 유니코드를 인코딩(encoding)하여 전혀 다른 바이트 체계의 스트림을 생성합니다. (보다 자세한 것은 유니코드만을 다루는 문서를 만들어 보도록 하겠습니다.)
EUC-KR은 한글 환경에서는 거의 모든 컴퓨터가 지원하므로 편리하다는 장점이 있지만 한글과 중국어를 동시에 쓸 수 없고 지원하는 글자도 제한되어 있어서 점차 UTF-8로 인코딩의 대세가 기울어지고 있습니다. 그래서 미래를 위해서는 서비스 개발시 기본 인코딩을 UTF-8로 하는 것이 좋습니다. KRISTAL은 내부저장 인코딩으로 이미 UTF-8을 사용하고 있습니다.
[참조] 유니코드가 EUC-KR의 superset이긴 합니다만, 한국(일본도 마찬가지)의 특수한 문자환경(한자를 사용하며 한자 음가에 의한 정렬이 있다...) 때문에 유니코드가 지원하지 못하는 점이 발생합니다. 한자가 한글음가대로 정렬이 안된다는 점이 발생합니다. 이 점은 유념하시길...
ASCII = American Standard Code for Information Interchange
아스키 코드는 ISO 8859-1 (Latin-1) 표준과 동일
KSC5601
한글 완성형 표준(한글 2,350자 표현)
한국공업표준 정보처리분야(C)의 5601번 표준안
전각문자/기호/자소/선문자 0xA180 ~ 0xAFFF
한글영역 0xB0A1 ~ 0xC9FF
한자영역 0xCA80 ~ 0xFDFF
KSC5636
영문자에 대한 표준
한국공업표준 정보처리분야(C)의 5636번 표준안
기존 ASCII Code에서 역슬래쉬(\)를 원(\) 표시로 대체
EUC-KR
Bell Laboratories에서 유닉스 상에서 영문자 이외의 문자를 지원하기 위해 제안한 확장 유닉스 코드(Extend UNIX Code)중 한글 인코딩 방식 영문은 KSC5636로 처리하고 한글은 KSC5601로 처리
EUC-KR = KSC5601 + KSC5636
Unicode
유니코드 컨소시움에서 제정한 전세계 문자에 대한 통합 문자집합
세계표준화기구(ISO)의 ISO 10646 표준과 동일
UTF-8
유니코드를 표현하기 위한 문자 인코딩
인코딩과 표준을 구분없이 주절주절 늘어놓았군요.
문자집합을 정의하는 표준 명칭과 인코딩으로 정리를 해볼까요.
(표준은 코드의 영역을 정의하고, 인코딩은 이를 컴퓨터로 표현하는 방식이라고 제 나름대로 규정하였습니다.)
표준: ASCII(ISO 8859-1), 유니코드(ISO 10646), 완성형 한글(KSC5601)
인코딩: iso-8859-1, UTF8, EUC-KR
영어는 iso-8859-1로 인코딩되었다고 하고, 유니코드는 요즘 대부분의 경우 UTF-8로 인코딩합니다. 완성형은 EUC-KR이라고들 하지요. 실제로 iso-8859-1이나 EUCKR의 인코딩은 표준과 동일해서 별도의 인코딩이라고 부르기도 어렵습니다. 하지만 유니코드의 경우 UTF-8은 유니코드를 인코딩(encoding)하여 전혀 다른 바이트 체계의 스트림을 생성합니다. (보다 자세한 것은 유니코드만을 다루는 문서를 만들어 보도록 하겠습니다.)
EUC-KR은 한글 환경에서는 거의 모든 컴퓨터가 지원하므로 편리하다는 장점이 있지만 한글과 중국어를 동시에 쓸 수 없고 지원하는 글자도 제한되어 있어서 점차 UTF-8로 인코딩의 대세가 기울어지고 있습니다. 그래서 미래를 위해서는 서비스 개발시 기본 인코딩을 UTF-8로 하는 것이 좋습니다. KRISTAL은 내부저장 인코딩으로 이미 UTF-8을 사용하고 있습니다.
[참조] 유니코드가 EUC-KR의 superset이긴 합니다만, 한국(일본도 마찬가지)의 특수한 문자환경(한자를 사용하며 한자 음가에 의한 정렬이 있다...) 때문에 유니코드가 지원하지 못하는 점이 발생합니다. 한자가 한글음가대로 정렬이 안된다는 점이 발생합니다. 이 점은 유념하시길...
반응형
'프로...Linux' 카테고리의 다른 글
[Perl] 인코딩 변환 (0) | 2019.04.03 |
---|---|
[SHELL] bash/sh 실수 계산 작업 (0) | 2019.04.02 |
[APT] 저장소(repository) 변경하기 (0) | 2019.03.31 |
[SHELL] bash/sh 스트링(String) 변수 작업 (0) | 2019.03.21 |
[C] BackSlash 제거하기 (0) | 2019.03.18 |