
문자들을 Code Point에 대응시켜 만든 코드화된 문자 집합
Code Point는 Character의 식별자가 됨
ex) KS C 5601, ISO 10646, US-ASCII 등
CCS를 octet(8bit) 집합에 대응시키는 것
=> 문자를 표현하는 기본 단위가 8bit이기 때문
CCS와 CES는 1:1로 대응된다.
흔히 말하는 인코딩에 해당한다.
- 인코딩 : Character를 시스템이 인식 할 수 있는 값으로 변환하는 것
- 디코딩 : 인코딩된 값을 다시 Character로 변환하는 것
서로 호환이 안 될 수 있음
ex) UTF-8, UTF-16, euc-kr, CP949 등
인코딩한 문자가 특정 프로토콜을 타고 전송되도록 변환하는 것
통신 프로토콜에 제약이 있을 수 있기 때문이다.
=> url에서 공백은 사용 불가하므로 변환 필요
ex) URL Encoding, BASE64 Encoding 등
다양한 나라가 서로 다른 인코딩 방식을 사용해서 호환성 및 확장성에 문제가 발생
따라서 전 세계 문자를 컴퓨터에서 다룰 수 있도록 표준 시스템을 만든 것이 유니코드이다.
대부분의 문자 및 이모티콘도 포함되어 있다.
코드 포인트 범위는 0x0 ~ 0x10FFFF (1114112개 문자)이다.
자주 사용하는 문자들은 BMP(Basic Multilingual Plan)에 담겨 있다.
2바이트보다 큰 문자는 Surrogate Pair 방법을 통해 표현한다.
Code Point가 어떤 단위로 조합되어 인코딩되는 지 정의한 것이다.
보통 유니코드는 크기를 줄이기 위해 UTF-8로 인코딩한다.
UTF는 다양한 바이트 순서와 BOM 허용 여부가 각기 다르다.
Big-Endian과 Little-Endian은 컴퓨터 메모리에 저장된 바이트의 순서를 뜻한다.
Big-Endian은 큰 쪽에서 작은 쪽으로 저장하므로 사람이 읽기 편하고
Little-Endian은 작은 쪽에서 큰 쪽으로 저장되므로 컴퓨터가 처리하기 편하다.
😅 해당 내용은 공부하면서 정리한 글입니다. 틀린 부분이나 오해하고 있는 부분이 있다면 피드백 부탁드립니다.