TIL.Encoding 및 UTF-8

const_yang·2022년 2월 9일
0

TIL

목록 보기
13/14
post-thumbnail

인코딩과 유니코드

유니코드란? 전 세계 다양한 문자와 기호를 컴퓨터에서 일관되게 표기하기 위한 산업 표준이다.
문자나 기호를 컴퓨터에 보내려면 인코딩(부조화)하여 보내고, 해독할 때는 디코딩하여 처리한다. 인코딩과 디코딩의 기준을 charset이라고 부른다.
charset의 국제 표준이 유니코드이다.

ASCII (American Standard Code for Information Interchange)

영문 알파벳을 7비트의 이진로 인코딩하는 방식:

UTF-8 (가변 길이 인코딩)

코드 포인트에 따라 1byte 부터 4bytes까지 길이를 가변하여 인코딩할 수 있는 방식이다.
각 바이트에 식별자를 넣어 주어 컴퓨터가 인코딩 하려는 문자가 어떤 문자인지 인식하도록 약속한 것이다.

영어 알파벳 A의 유니코드 코드 포인트는 U+0041 이다. 이진 표현은 1000001 이다.
A는 UTF-8 인코딩으로 다음과 같이 표시된다.

빨간색의 0비트는 현재 1바이트 인코딩이 되고 있고, 나머지는 코드 포인트라는 것을 알려주고 있다.

참고로 ASCII 코드는 7비트로 표현되므로, UTF-8에서 모두 1byte 결과로 만들 수 있다. ASCII 127 문자의 이진 표현은 01111111이다.

예시
라는 문자의 유니코드 = U+CF54 (이진법 1100-1111-0101-0100) => UTF-8 3bytes 표현해야한다.

1110xxxx 10xxxxxx 10xxxxxx // (3bytes의 식별자들이다. 가장 하위 byte의 마지막 x부터 채워 넣는다
11101100 10111101 10010100

UTF-16 (가변 바이트 인코딩)

모든 현대 언어의 유니코드 대부분을 2bytes로 표현할 수 있다.
바이트의 순서에 따라 UTF-16의 종류도 달라진다.

참고 https://naveenr.net/unicode-character-set-and-utf-8-utf-16-utf-32-encoding/

이진 파일과 텍스트 파일의 특징

  • 텍스트 파일이 아닌 파일은 전부 이진 파일로 취급된다.
  • 메모장으로 파일을 열었을 때 깨져 보이는 경우, 인코딩의 문제이거나 혹은 해당 파일이 이진 파일이기 때문이다.
  • 텍스트 파일은 운영체제별로 개행 문자 처리가 다르다.
  • 대표적인 이진 파일로는 비트맵 이미지 파일이나 사운드 파일, 또는 실행 가능한 파일 등이 있다.

0개의 댓글