문자열 인코딩
Character Encoding : 문자집합을 컴퓨터에 저장하기 위해 Byte형태로 표현한 것을 인코딩이라 한다.
(CES, Character Encoding Scheme)
1. ASCII ( American Standard Code for Information Interchange Code )
: 미국 국립 표준 협회(ANSI)의 전신인 미국 표준 협회(ASA)의 주도로 X3 위원회가 개발한 최초의 문자열 인코딩
미국 표준으로 영어문자, 숫자, 특수문자, 기호 등 128개(7bit)를 문자로 표현 가능
2. ANSI ( American National Standards Institute Code )
: 영어 표기를 위해 만든 코드로 규격에 한글이 포함되지 않으므로 한글 사용 시 따로 언어파일 설정 필요
Extension of the ASCII character set으로도 표현된다.
ASCII에서 7bit로 문자를 표현했다면 뒤에 CodePage를 1bit 더 붙여 각 언어별 Code를 부여
Code마다 다른 문자열 표를 참조할 수 있도록 하였다. ( ANSI = ASCII Code(7bit) + CodePage(1bit) )
영어만 사용할 경우 문제가 없으나, 타 언어를 타용할 경우 Code Page를 정확히 지시해주어야 한다.
3. 유니코드( Unicode )
: 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업표준, 유니코드 협회에서 제정
글자와 코드가 매핑되어있는 '코드표'이다.
4. UTF-8 ( Unicode Transformation Format - 8 )
: 전세계 글자를 표현하기 위한 목적으로 만든 코드로, HTML에서 한글 지원
원리는 유니코드 목록을 통해 매핑 테이블을 확인한 후 8bit 단위로 쪼개어 저장한다.
글자마자 byte 길이가 다르므로 첫바이트에 표식을 넣어 구분한다. ('a'는 1byte, '가'는 3byte)
자세한 내용 → https://ko.wikipedia.org/wiki/UTF-8
UTF-8 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 UTF-8은 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로, 켄 톰프슨과 롭 파이크가 만들었다. UTF-8은 Universal Coded Character
ko.wikipedia.org
5. EUC-KR ( Extended Unix Code-Korea )
: 동아시아의 문자개수가 많아 1바이트로 표현이 어려운 부분을 보강하여 가변형태의 인코딩을 사용하였다.
ASCII range의 경우 1byte, 한글은 2bytes로 표현하는 인코딩 방식
1) 영문, 숫자, 특수문자는 ASCII
2) 한글은 EUC-KR Table을 통해 매핑
ex) '컴퓨터CPU'라는 단어를 EUC-KR을 이용하여 만들면,
'컴': [0xC4 0xC4] '퓨': [0x7C 0xBB] '터': [0xC5 0xCD] ← 2 bytes
'C': [0x43] 'P': [0x50] 'U': [0x55] ← 1 byte
6. CP949, CodePage949(MS949)
: 한글 2,350자밖에 지원하지 않는 EUC-KR을 확장하여 만든 완성형 코드 조합으로, CP는 ANSI에서 언급한 CodePage의 약자이며 949는 코드 페이지 번호이다.
MS에서 만들어서 MS949라고도 한다.
EUC-KR → CP949로 인코딩은 문제가 없지만 CP949 → EUC-KR의 인코딩으로는 많은 글자 표현이 어렵다.