유니코드

Jun 2k (Jun2)·2023년 9월 21일

CS공부

목록 보기
7/8
post-thumbnail

기본 개념

CCS(Coded Character Set)

문자들을 Code Point에 대응시켜 만든 코드화된 문자 집합
Code Point는 Character의 식별자가 됨
ex) KS C 5601, ISO 10646, US-ASCII 등


CES(Character Encoding Scheme)

CCS를 octet(8bit) 집합에 대응시키는 것
=> 문자를 표현하는 기본 단위가 8bit이기 때문
CCS와 CES는 1:1로 대응된다.
흔히 말하는 인코딩에 해당한다.
- 인코딩 : Character를 시스템이 인식 할 수 있는 값으로 변환하는 것
- 디코딩 : 인코딩된 값을 다시 Character로 변환하는 것
서로 호환이 안 될 수 있음
ex) UTF-8, UTF-16, euc-kr, CP949 등


TES(Transfer Encoding Syntax)

인코딩한 문자가 특정 프로토콜을 타고 전송되도록 변환하는 것
통신 프로토콜에 제약이 있을 수 있기 때문이다.
=> url에서 공백은 사용 불가하므로 변환 필요
ex) URL Encoding, BASE64 Encoding 등


유니코드

다양한 나라가 서로 다른 인코딩 방식을 사용해서 호환성 및 확장성에 문제가 발생
따라서 전 세계 문자를 컴퓨터에서 다룰 수 있도록 표준 시스템을 만든 것이 유니코드이다.
대부분의 문자 및 이모티콘도 포함되어 있다.


유니코드-CCS

코드 포인트 범위는 0x0 ~ 0x10FFFF (1114112개 문자)이다.
자주 사용하는 문자들은 BMP(Basic Multilingual Plan)에 담겨 있다.
2바이트보다 큰 문자는 Surrogate Pair 방법을 통해 표현한다.


유니코드-CES

Code Point가 어떤 단위로 조합되어 인코딩되는 지 정의한 것이다.
보통 유니코드는 크기를 줄이기 위해 UTF-8로 인코딩한다.
UTF는 다양한 바이트 순서와 BOM 허용 여부가 각기 다르다.

Big-Endian과 Little-Endian은 컴퓨터 메모리에 저장된 바이트의 순서를 뜻한다.
Big-Endian은 큰 쪽에서 작은 쪽으로 저장하므로 사람이 읽기 편하고
Little-Endian은 작은 쪽에서 큰 쪽으로 저장되므로 컴퓨터가 처리하기 편하다.

  • BOM(Byte Order Mark)
    문서 제일 앞에 U+FEFF를 삽입하여 어플리케이션이 바이트 순서를 알 수 있게 해준다.


😅 해당 내용은 공부하면서 정리한 글입니다. 틀린 부분이나 오해하고 있는 부분이 있다면 피드백 부탁드립니다.

profile
유리프트 프론트엔드

0개의 댓글