유용한정보

아스키, 안시, 일반유니코드, UTF8유니코드

korea7 2016. 3. 6. 14:25

유니코드(Unicode)이든 아스키(ASCII) 텍스트든, 모두 파일에 글자들을 표현하는 방식입니다.


아스키(ASCII) 텍스트 / 한글 KS완성형(euc-kr)


* 현재 사용되는 아스키(ASCII) 코드의 더 정확한 이름은 ANSI Code 입니다. (색깔을 나타내는 앤시 코드가 아니고 문자를 나타내는 규약입니다.)


* 영문/숫자 1글자는 1바이트, 한글/한자 1글자는 2바이트입니다.


* 하나의 인코딩당, 영문과 또다른 하나의 언어만 사용할 수 있습니다. 한국어 아스키 코드인 완성형(euc-kr) 인코딩에서는 영문과 한글 그리고 한국에서 사용되는 한자만 표현할 수 있습니다. 물론 일본어 가나도 섞여 있지만, 일본어 인코딩이 아니기에 일본인은 읽을 수 없습니다.


그래서 하나의 파일에 여러 언어를 동시에 표현하기 힘들거나 불가능합니다.


* 컴퓨터 초창기부터 사용되어 왔기에, 호환성이 아주 좋습니다.


* MS윈도우2000/XP이상의 운영체제에서는, 내부적으로 유니코드를 사용하지만, 사용자가 실제 읽고 쓰는 텍스트 문서는 대부분 아스키 코드입니다.




유니코드(Unicode / UTF-8) 텍스트


* 영문/숫자/한글/한자 등 모든 글자는 이론적으로 2바이트입니다. 그리고 파일에 저장될 때도 2바이트로 저장됩니다.


아주 희귀한 문자들은 2바이트를 초과할 수도 있습니다.


단, UTF-8 유니코드가 파일에 저장될 때, 영문/숫자는 아스키 코드와 똑같이 1바이트를 사용하고, 한글 등은 3바이트로 파일에 저장됩니다. UTF-8 유니코드는 아스키 코드와 영문 영역에서는 100% 호환됩니다. 만약 UTF-8 유니코드 문서에 한글 등이 전혀 없고, 영문과 숫자로만 이루어져 있다면, 그 파일은 아스키 코드와 동일합니다.


웹페이지를 유니코드로 만들 때에는 UTF-8 유니코드를 사용합니다.



* 전세계의 모든 언어를 하나의 파일에 쓸 수 있습니다. 물론 각 언어에 해당하는 폰트가 설치되어 있어야 합니다.


* 유니코드의 역사가 그리 오래되지 않아서, 아직도 유니코드를 잘 인식하지 못하는 컴퓨터가 있습니다. 특히 윈도우98이나 오래된 유닉스 시스템의 경우입니다. 그렇지만 유니코드로 작성된 인터넷 웹페이지는 대부분 잘 인식합니다.

(1) 보통의 한국어 텍스트 문서: 이것은 아스키 문서이며 유니코드가 아닙니다. 영문/숫자/기호는 1바이트. 한글과 한자는 2바이트로 표현됩니다. euc-kr 또는 ksc_c_5601-1987 로 불리는 인코딩이며 웹페이지 작성에 사용할 수 있습니다. 특수한 외국어 문자나 일본식/중국식 한자는 표현할 수 없습니다.


다음의 2개가 유니코드입니다:


(2) 일반 유니코드(Unicode): 모든 글자를 2바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 인터넷에 HTML 파일로 올릴 수 없습니다. 즉 웹페이지 작성에 쓸 수 없습니다.


(3) UTF-8 유니코드: 영문/숫자/기호는 1바이트로, 한글과 한자 등은 3바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 웹페이지 작성에 쓸 수 있습니다. (저의 mwultong.blogspot.com 이 블로그도 UTF-8 로 되어 있습니다)




MS윈도우2000/XP 이상에서는, 외부적으로는 '일반 아스키 인코딩(1번)'을 사용하고, 내부적으로는 '일반 유니코드(2번)'를 사용합니다.


유닉스/리눅스/오픈소스 진영에서는 'UTF-8 유니코드(3번)'를 기본으로 사용합니다.


그렇지만 윈도 메모장에서도 UTF-8 유니코드 문서를 읽고 저장할 수는 있습니다.