티스토리 뷰

programming/etc

[etc] 유니코드

LEIBNIZ 2017. 2. 16. 13:44

유니코드

 - 컴퓨터에서 문자를 표현하기 위한 거대한 표

 - 아스키 코드와 같이 문자를 숫자로 바꿔주는 표

 - 프로토콜에 가깝다


비트와 바이트

 - 1비트는 [], 2비트는 [][], 3비트 [][][]

 - 1바이트 = 8 비트 [][][][][][][][]

 - 16진법 두자리 숫자는 1바이트에 해당, (예 : 0xC3FF ( C, 3, F, F) 는 2바이트 , 0x10FFFF (1, 0, F, F, F, F) 3바이트) )

용어

 - 코드포인트 : 문자에 부여한 고유한 숫자값

 - 평면 : 적당한 범위로 나눠서 코드포인트를 관리하는 범위 (예 : 0평면(0x0000 ~ 0xFFFF) 1평면(0x10000 ~ 0x1FFFF)

 - 코드 유닛 : 바이트 덩어리를 어떤 기준으로 잘라 코드포인트를 볼 것인지를 결정하는 고정 길이값

 - 패딩 : 코드포인트를 제대로 맞추기 위해 코드 유닛의 크기를 키우지만 본래 코드포인트길이 보다 큰 길이에 0의 값을 넣어 코드 유닛을 맞춰주는 행위 (예 : "a안녕" 이라는 문자가 있으며  'a' 의 코드포인트는 61, '안'의 코드포인트는 C5 48, '녕'의 코드포인트는 B1 55 인데 이를 제대로 나누기위해 코드유닛을 2바이트로 나눈다. 그렇다면 '안'과 '녕'은 2바이트에 제대로 들어가지만 'a'의 경우 1바이트가 텅비게 된다 이때 코드유닛을 맞추기위해 00을 넣어 'a'는 0061이 된다.  )

 - 인코딩 : 코드유닛으로 코드포인트를 표현하는 것을 인코딩이라 한다. 코드유닛1바이트 인코딩방식은 UTF-8, 코드 유닛보다 코드포인트가 클때는 코드 포인트를 분해한다.

 - 디코딩 : 코드유닛으로 부터 코드포인트를 복원하는 과정


(출처 - http://www.bsidesoft.com/?p=3435)

'programming > etc' 카테고리의 다른 글

[linux] fedora 에서 .jar 파일 클릭 실행  (0) 2017.04.24
[etc] 암달의 법칙  (0) 2017.02.24
[etc] 윈도우 라이브러리 파일  (0) 2017.02.02
[etc] 프로세스와 스레드  (0) 2017.02.01
[etc] C 메모리 구조  (0) 2016.05.18
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함