티스토리 뷰

리눅스 언어셋 UTF-8 (unicode 유니코드)



UTF-8


유니코드를 위한 가변 길이 문자 인코딩 방식의 표준 







유니코드


세계 각국의 언어를 통일된 방법으로 표현할 수 있게 제안된 국제적인 코드 규약의 이름이다. 

8비트 문자코드인 아스키(ASCII) 코드를 16비트로 확장하여 전 세계의 모든 문자를 표현하는 표준코드이다.




UTF-8 개요 

 

컴퓨터가 최초에 영어권국가 에서 만들어져   문자를 표기할때 전세계 각 나라들은 자기나라의 문자를 표현하기 위해 나름대로의 독자적인 변환을 하여 사용해야 했습니다. 

이러한 방법을 인코딩이라고 부릅니다. 


우리나라는 한글을 표기하기 위해 EUC-KR라는 인코딩을 사용하였고, 일본은 Shift-JIS,중국은 GB2312,대만은 Big5,우크라이나는 KOI8-U..등등  결국 지구상에는 수십종류의 인코딩이 생기게 되었습니다. 


하지만,이렇게 제각각의 길을 걷다 보니 문제가 되는 경우가 많았습니다.

흔히 ‘한글이 깨져 보인다‘거나 ‘이상한 글자가 보인다‘는 말은 이 과정에 문제가 생겼기 때문입니다. 외국에서 만든 프로그램이나 게임들은 한국어 환경에서 제대로 문자가 보이지 않는 경우가 많았고, 반대로 한글로 된 것들은 영문윈도우 등에서 제대로 표시되지 않습니다.

이것은 로마자 외의 문자를 가진 다른 나라도 마찬가지였습니다. 


그래서 전세계의 수많은 기업들을 중심으로 이러한 문제와 혼란을 해결하기 위한 노력이 진행되었습니다. 

그리하여 탄생한 것이 유니코드(Unicode)입니다

유니코드 중 UTF-8이라는 방식이 가장 힘을 얻게 되었고, 세계 표준으로 인정받고 있습니다.




서버 설정


httpd.conf

AddDefaultCharset UTF-8 


php.ini

default_charset = "utf-8"





우선 페도라의 원래 기본 언어 설정은 utf8 방식 입니다.

/etc/sysconfig/i18n 파일에

LANG="en_US.UTF-8"

딱 이줄만 존재 합니다.

언어 설정 은 터미널 콘솔서 #locale 명령으로 볼수 있습니다.


 

현재 리눅스 뿐 아니라 인터넷 등 에서 한글표현 방식이 euc_KR 과 utf8 을 공존하며

쓰고 있는 상태입니다. (웹서버, 디비 등 포함)

웹브라우져 에서 한글 페이지를 다니다 한글인데 깨져 보이는 경우가

바로 두 인코딩 방식 중 어떤것을 사용한다라고 선언 안해 주어서 그런 거지요!


 

1. 콘솔에서 한글입력은 죽어도 안된다. 질문에 대해...

X 의 터미널이 아닌 콘솔 에서 ( 런레벨3 ) 한글을 보기 위해 전부터 많은 방법이 있었습니다.

와우리눅스 나 안녕리눅스의 경우 커널에 한글코드소스를 포함 하여 한글 입출력 가능 하며..

요즘은 일본에서 만든 오픈소스인 jfbterm 을 변형하여 콘솔서 한글 입출력이 가능 합니다.

참고 링크 http://hangul-jfbterm.kldp.net/install.html

이 jfbterm 을 패키지에 넣은 배포본이 슈퍼유저 쪽에서 내놓은 SULINUX 입니다.

패도라 또는 레드헷, 우분트, 센트오에스 등의 배포본에서

X 없이 콘솔 만에서 한글 입출력이 가능 하려면

한글코드 소스 포함 커널 컴파일 또는 jfbterm 의 설치 입니다. (환경 고치는 것으로 불가능)


 

2. 원격 접속시 한글 입출력이 깨졌다면 그것은 아마도 i18n 파일을

EUC_KR 로 바꾸서 입니다.

원격 접속에서 한글 입출력은 서버와 상관 없이

접속 클라이언트 OS 의 접속프로그램에 달려 있습니다.

한글 PUTTY 의 경우 환경 설정서 변환에

수신 문자셋을 서버가 EUC_KR 이면 CP949 로

서버가 UTF8 이면 UTF8 로 마추면 한글 입출력이 가능 합니다.


 

3. 추가 글

리눅스 에서 X 윈도를 쓰지않는 서버로만 구성한 경우(콘솔 로긴, 런레벨3)

한글 입출력은

① 원격에서 TELNET , SSH 로 작업하던가...

② 직접 서버 콘솔로 로긴 하여 작업 해야 한다면 JFBTERM 의 설치가

본인이 알고 있는 가장 현명한 선택입니다.


 

참고 용어 : 위키백과

EUC-KR은 예전에는 ksc-5601 코드로 불리던 한글 완성형 코드입니다. 코드페이지 949라고 불리며 cp949라는 설정으로도 쓰이기도 합니다. (그러나 cp949는 아래에서 말하는 UHC와 같은 개념입니다. EUC는 Extended Unix Code 의 약자입니다.)


 

UTF-8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다고 합니다. UTF-8 인코딩은 유니코드 한 문자를 나타내기 위해 1바이트에서 4바이트까지를 사용합니다. 예를 들어서, U+0000부터 U+007F 범위에 있는 아스키 문자들은 UTF-8에서 1바이트만으로 표시되고. 4바이트로 표현되는 문자는 모두 기본 다국어 평면(BMP) 바깥의 유니코드 문자이며, 거의 사용되지 않습니다.

[적용하기 1]

일반적으로 리눅스 콘솔(X-windows를 사용하지 않았을 경우)에서는 한글이 깨져 나온다.
이럴떄
1. unset LANG 
- 콘솔에서 한국어 설정이 해제된다.
2. LANG=C
3. locale -a | grep ko 라고 입력하면 사용가능한 언어가 나온다.
4. vi /etc/sysconfig/i18n 파일에서 LANG를 아래와 같이 수정한다.
LANG = "ko_KR.euckr"
참고) vi 사용법을 알고 있어야 수정이 가능할 것이다.
1. vi /etc/sysconfig/i18n 실행
2. 자판에서 'i'를 누르면 입력 모드로 전환이 된다.
3. 수정이 되었으면 [Esc]를 눌러 모드를 전환한다.
이 후에... 자판에서 ':w'를 누르면 저장이 된다.
다른 방법은 ':wq'을 하면 저장하고 나간다.
---------------------------------------------------------------
.Save ':w'
.Save file name as tt('tt'라는 이름으로 저장) ':w tt'
.Save and exit(현재의 파일로 저장하고 나가기) 'ZZ', ':wq'
.Exit(Vi 나가기) ':q'
.Exit without saving(저장하지 않고 나가기) ':q!'
---------------------------------------------------------------


 

수정 파일 : /etc/sysconfig/i18n


 

원본 구문
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"


 

수정 구문
LANG="ko_KR.eucKR"
SUPPORTED="en_US.iso885915:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"


 

source /etc/sysconfig/i18n


 

# 매뉴얼 설정 수정

수정 파일 : /etc/man.config

원본 구문 : PAGER /usr/bin/less -is

수정 구문 : PAGER /usr/bin/less -isr

 



[출처] 한글 깨짐 현상 바로 잡기|작성자 빨간토끼


http://blog.naver.com/99jack?Redirect=Log&logNo=130023741679

 




댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함