[CS] ASCII, Unicode, UTF-8

Coodori·2023년 12월 11일
0

CS

목록 보기
2/2

공부하게된 계기

면접에서 물어본 사항이기도 하고 이번 기회에 정확하게 공부하고 넘어가고 싶어서 찾아보게 되었다.

추가로, 파이썬2 버전에서는 ASCII가 표준이고 파이썬3 버전에서는 Unicode가 표준이되었다고 전 포스팅에서 소개한 바가 있다.

인코딩이란?

정의: 문자를 어떻게 출력할지에 대한 약속

컴퓨터의 기본 저장단위는 byte이다. (1byte -> 8bit)
고로, 1byte에는 2의 8승에 해당하는 256 고유한 값을 저장가능

문자나 기호들의 집합을 컴퓨터에서 저장하거나 통신의 목적으로 사용할때는 부호로 바꾸어야한다.

위 과정을 문자 인코딩 또는 부호화' 라고 칭한다. 반대는 복호화

아스키(ASCII) American Standard Code for Information Interchange

1960년대 미국에서 정의한 부호체계

128개의 문자조합을 제공하는 7비트 부호

1비트는 통신에러 검출을 위해 사용함
이것을 Parity Bit라고 한다.

  • 컴퓨터 내에서 문자 A는 65로 저장된다.
  • 128개로는 부족해서 1비트를 늘려서 8비트짜리 ANSI코드 등장
    - 여전히 모든 나라의 문자를 표현하기엔 부족하다 그래서 유니코드가 나왔다

유니코드(Unicode)

각 나라별 언어를 모두 표현하기 위해 나온 코드 체계가 유니코드
숫자와 글자, 즉 키 값이 1:1로 매핑된 형태의 코드


2byte(2^16)의 크기를 갖는다.

하지만 희귀한 문자들은 2byte를 넘어갈수도 있다.

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

유니코드를 사용하는 인코딩 방식 중 하나

영어와 숫자는 1byte에서 표현이 가능하지 않은가??
그러면 효율적으로 영문/숫자/기호는 1byte로, 한글/한자는 3byte로 표현
그렇게 하면 더 많은 글자들을 표현 가능하다.

만약, UTF-8 유니코드 문서에 한글 등이 전혀 없고 영문과 숫자로 이루어져 있다면 그 카드는 아스키코드와 동일하다

profile
https://coodori.notion.site/0b6587977c104158be520995523b7640

0개의 댓글

관련 채용 정보