면접에서 물어본 사항이기도 하고 이번 기회에 정확하게 공부하고 넘어가고 싶어서 찾아보게 되었다.
추가로, 파이썬2 버전에서는 ASCII가 표준이고 파이썬3 버전에서는 Unicode가 표준이되었다고 전 포스팅에서 소개한 바가 있다.
정의: 문자를 어떻게 출력할지에 대한 약속
컴퓨터의 기본 저장단위는 byte이다. (1byte -> 8bit)
고로, 1byte에는 2의 8승에 해당하는 256 고유한 값을 저장가능
문자나 기호들의 집합을 컴퓨터에서 저장하거나 통신의 목적으로 사용할때는 부호로 바꾸어야한다.
위 과정을 문자 인코딩 또는 부호화' 라고 칭한다. 반대는 복호화
1960년대 미국에서 정의한 부호체계
128개의 문자조합을 제공하는 7비트 부호
1비트는 통신에러 검출을 위해 사용함
이것을 Parity Bit라고 한다.
각 나라별 언어를 모두 표현하기 위해 나온 코드 체계가 유니코드
숫자와 글자, 즉 키 값이 1:1로 매핑된 형태의 코드
2byte(2^16)의 크기를 갖는다.
하지만 희귀한 문자들은 2byte를 넘어갈수도 있다.
유니코드를 사용하는 인코딩 방식 중 하나
영어와 숫자는 1byte에서 표현이 가능하지 않은가??
그러면 효율적으로 영문/숫자/기호는 1byte로, 한글/한자는 3byte로 표현
그렇게 하면 더 많은 글자들을 표현 가능하다.
만약, UTF-8 유니코드 문서에 한글 등이 전혀 없고 영문과 숫자로 이루어져 있다면 그 카드는 아스키코드와 동일하다