포스트

문자 인코딩

문자 인코딩

컴퓨터와 데이터

컴퓨터의 메모리는 트랜지스터라고 불리는 작은 전자 스위치가 모인 반도체로 만들어져 있습니다.

트랜지스터는 전기가 흐르지 않는 것과 흐르는 것을 0과 1로 표현합니다.

  • 1bit: 2가지 표현
    • 0
    • 1
  • 2bit: 4가지 표현
    • 00, 01
    • 10, 11
  • 3bit: 8가지 표현
    • 000, 001, 010, 011
    • 100, 101, 110, 111

1bit가 늘어날 때마다 표현 가능한 숫자는 2배씩 증가합니다.

음수 표현: 처음 1bit를 음수, 양수를 표현하는데 사용합니다.

문자 인코딩

문자는 바로 숫자로 표현할 수 없습니다. 따라서 각 문자에 맞는 숫자를 매핑해 놓았습니다.

ASCII 문자 집합

  • 1960년도
  • 7bit 사용
  • 알파벳, 숫자, 특수문자, 스페이스, 엔터와 같은 기본 적인 문자만 표현

ISO_8859_1

  • 1980년도
  • 1byte 사용
  • 서유럽 문자 표현
  • ASCII 호환

한글 문자 집합

EUC-KR

  • 1980년도
  • 모든 한글 X. 자주 사용하는 한글 2350개만 포함
  • 2byte 사용
  • ASCII는 1byte, 한글은 2byte 사용
  • ASCII 호환

MS949

  • 1990년도
  • 모든 한글을 표현
  • EUC-KR과 호환
  • ASCII 호환

전세계 문자 집합

유니코드

  • 1990년도
  • 전 세계 모든 문자들을 단일 문자 세트로 표현

UTF-16

  • 1990년도
  • 2byte 사용
  • 자주 사용하는 기본 다국어들은 2byte로 표현
    • 영어, 유럽 언어, 한국어, 중국어, 일본어 등
  • 그 외는 4byte로 표현
    • 고대 문자, 이모지, 중국어 확장 한자 등
  • 단점
    • ASCII 영문도 2byte 사용
    • ASCII 호환 되지 않음

UTF-8

  • 1990년도
  • 1byte 기반, 가변길이 인코딩
    • 1byte: ASCII, 영문, 기본 라틴 문자
    • 2byte: 그리스어, 히브리어 라틴 확장 문자
    • 3byte: 한글, 한자, 일본어
    • 4byte: 이모지, 고대문자 등
  • 장점
    • ASCII 문자는 1byte로 표현
    • ASCII 호환
  • 단점
    • 상대적으로 사용이 복잡
    • ASCII를 제외한 일부 언어에서 더 많은 용량 사용
    • EUC-KR, MS949 한글 호환 되지 않음
    • UTF-16 영어, 한글 호환 되지 않음
  • 현대의 사실상 표준 인코딩 기술

결론: UTF-8을 사용하면 됩니다.

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.