[iOS] 문자 인코딩과 Unicode

RudinP·2024년 3월 30일
0

Study

목록 보기
213/226

인코딩과 디코딩

  • 문자를 바이너리로 바꾸는 작업을 인코딩
  • 반대로 바이너리를 문자로 바꾸는 작업을 디코딩이라고 함.
  • 메모리에 저장되는 형태가 문자집합마다 달라짐

ASCII

  • 하나의 문자를 1Byte로 표현하는 문자 집합
  • 1Bit는 Parity Bit
  • 128개의 문자 표현 가능
  • extended ASCII-> 표현 가능 문자가 256개로 늘어남

EUC -KR

  • 한글은 초성, 중성, 종성으로 이루어져있음
  • ASCII로는 표현 불가능
  • Extended Unix code -Korea 를 사용
  • KS X 1003 + KS X 1001이 합쳐진 문자 집합
  • 최대 2Byte. 영문자와 특문은 1Byte만, 한글 표현 시 2Byte 모두 사용
  • 복잡한 문자는 이상하게 출력될 수 있음

Unicode

  • 국제적 표준
  • 모든 국가의 문자를 표현하기 위한 문자 집합
  • 기본 인코딩으로 사용 됨

UTF-8

  • 가장 많이 사용(코딩할때도 마찬가지)
  • 코드 포인트를 인코딩할 때, 1~4Byte 가변 크기 사용
    • 기본 아스키코드에 있는 문자는 1Byte, 한글 등은 2~3Byte로 인코딩하고 복잡한 문자는 4Byte로 인코딩

UTF-16

UTF-32

완성형과 조합형

  • 한글을 인코딩 하는 방법

완성형

  • 음절 단위로 완성된 글자 하나마다 고유한 정수 할당
  • 글자 단위 처리로 쉽게 처리
  • 문자열 길이 계산이나 특정 위치 접근에 용이
  • 모든 문자를 표현할 수 있는 것은 아니나, 실생활에서 쓰는 문자는 다 사용 가능
  • i.e) EUC-KR

조합형

  • 초성, 중성, 종성을 조합해 하나의 글자를 인코딩
  • 초,중,종마다 별도의 숫자가 할당되어 있음
  • 한글로 표현 가능한 모든 글자 표현 가능
  • 상대적으로 복잡하고 느리다.
  • 문자에 할당되어있는 고유의 값들을 유니코드에서 Code Point라고 한다.
profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글