티스토리 뷰

ASCII

컴퓨터가 데이터를 처리할 때 사용하는 기본단위는 8비트 이다. 당연히 문자를 표현하려면 8비트로 표현 가능한 256개의 숫자들을 문자와 매핑하게 된다. 대표적인게 아스키 코드이다.


아스키(ASCII, American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다.

아스키는 1967년에 표준으로 제정되어 1986년에 마지막으로 개정되었다. 아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.

아스키가 널리 사용되면서 다양한 아스키 기반의 확장 인코딩들이 등장했으며, 이들을 묶어서 아스키라고 부르기도 한다. 대표적으로 7비트 인코딩을 유지한 ISO/IEC 646과, 원래 아스키 코드 앞에 비트 0을 넣어 8비트 인코딩을 만든 IBM 코드 페이지와 ISO 8859가 있다. 이 인코딩들은 언어군에 따라 같은 숫자에 서로 다른 문자가 배당된 경우가 많다. (위키참조)


아스키코드는 7비트 인코딩이라고 말하고 있다. 이유는 7개 비트만으로도 그 당시에 필요한 모든 알파벳 및 각종기호들을 모두 표현 가능했기 때문이다. 아스키 코드표를 보면 더 이해가 잘 되시리라 믿는다. 그래서 아스키코드를 8 비트로 표현하다 보면 맨 앞 이진수는 항상 0 으로 채워진다.



ISO-8859-1


그러다 아스키 기반의 확장 인코딩이 등장하게 된다. ASCII에 포함된 95자의 인쇄 영역은 현대 영어로 정보를 표현하는 데 충분하다. 하지만 로마 문자를 쓰는 다른 언어에는 ASCII로 처리할 수 없는 추가적인 기호를 포함하고 있다. 7비트 인코딩이었던 아스키코드에 8번째 비트를 추가적으로 사용하게 되면서 더많은 문자들을 표현하게 되는 것이다. 대표적인게 ISO-8859-1 인코딩이다.


라틴-1

가장 널리 쓰이며 대부분의 서유럽 언어를 지원한다. 네덜란드어(일부[* 1]), 노르웨이어, 덴마크어, 독일어, 로만슈어, 스웨덴어 스코틀랜드 게일어, 아이슬란드어, 아일랜드어, 에스파냐어, 영어, 이탈리아어, 페로어, 포르투갈어, 프랑스어(일부[* 2]), 핀란드어(일부[* 2]), 동유럽의 알바니아어, 아프라카의 스와힐리어, 아프리칸스어. 유로 기호(€)와 대문자 "?"는 개정판인 ISO 8859-15에 추가되었다. IANA의 문자 집합 ISO-8859-1에 대응하며, HTML 문서의 기본 인코딩이다.


다시 정리하자면, 아스키코드는 7비트 인코딩이었고, 그 인코딩의 8번째 비트를 활용해서 만든 확장인코딩이 ISO-8859-1 이라는 것이다. 그리고 ISO-8859-1 인코딩은 HTML 문서의 기본 인코딩이라는 점이 중요하다. 이 서유럽언어 확장 인코딩은 한글을 표현할 수 없는 인코딩이다. 그러므로 디폴트 셋팅되어 있는 HTML 문서에서는 절대 한글을 표현 할 수 없다.


만약 웹페이지에서 한글이 깨지고 있다면, 수많은 이유가 있을 수 있다. 하지만 특정 인코딩을 선언하지 않은 상태라면 html 문서는 인코딩 방식이 ISO-8859-1 으로 내려졌을 것이고, 당연히 그안에서 한글은 다른 서유럽 문자로 해석되고 있는 것 뿐이다. 원리만 이해하면 인코딩은 그저 머리아프고 복잡하기만 한 성질의 것은 아니다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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 29 30
글 보관함