ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터에서의 문자 표현
    프로그래밍/기록, 개념, 용어 2020. 5. 28. 22:53
    반응형

    ASCII

    • 미국에서 나온 표준(ASCII, American Standard Code for Information Interchange)
    • 0~255, 8비트 모두를 사용
    • UTF-8 인코딩과 호환 됨

     

    MULTIBYTE

    • 1바이트에 담을 없는 언어들을 위해 나옴
    • 가변 크기
    • 문자를 2바이트 내에 표현
    • 아스키에 있는 문자들은 1바이트로 표현
    • 언어마다 시작 비트 위치가 다르다

    MULTIBYTE - EUC(Extended Unix Code)

    • 아스키 문자를 지원하기 위한 MULTIBYTE 문자 인코딩.
    • EUC-XX 네이밍(EUC-KR) 가진다.
    • 언어권 코드 페이지를 가지고 있으며, 코드 페이지가 매칭 되어야 정상적으로 표기
      • 다른 나라 언어의 게임을 하면 꿹뗅 같은 표현이 나왔던 이유

    MULTIBYTE 한계

    한 번에 여러 언어권을 표현 못함. 코드 페이지가 교체되는 방식이므로.

     

    UNICODE

    • 전세계 문자를 일관되게 표현할 있는 규격
    • 세상 모든 문자에 번호를 붙임
    • 인코딩 방식에 따라 비트패턴이 다를 있음
      • 인코딩으로는 UTF8, UTF16, UTF32가 있다.
      • 각 인코딩은 값을 저장하는 방법에만 차이가 있다.

    UNICODE - UTF-8

    • UTF8은 ASCII를 100% 호환 함. 그러나 ASCII는 UTF8을 호환할 수 없음.
    • 한 문자 당 8~32비트(가변 비트 수)
    • 메모리를 적게 . 동양권 문자를 제외한 대부분의 문자가 1~2바이트로 내로 표현.
    • 번째 바이트의 패턴으로 한 문자가 몇 바이트로 이루어졌는지 파악할 수 있다.

    UNICODE - UTF-16

    • ASCII와 호환되지 않음.
    • UCS-2와 호환.
    • 한 문자 당 16~32비트(가변 비트 수)
    • , , 문자 표현이 2바이트로 가능.

    UNICODE - UTF-32

    • ASCII와 호환되지 않음.
    • 한 문자 당 32비트. 모든 문자가 같은 비트 수를 사용.
    • 하나의 캐릭터 엘리먼트가 Unicode point 1:1 대응 됨. 그러므로, 인코딩이 필요 없음.
    • 문자 단위 랜덤 엑세스 가능.

     

    과거의 UNICODE ENCODING

    c/c++ 문자는 char형으로 ASCII 썼었다가, 그 이후 wchar_t 나왔다. wchar_t 플랫폼에 따라 바이트 크기가 다름(2~4bytes)

    UCS-2

    • UTF-16의 전신
    • 최초의 유니코드 인코딩

    UCS-4

    • UTF-32 전신
    • UCS-2 문제를 느껴(2바이트 만으론 모든 표현이 불가능) 4바이트면 되겠다는 생각으로 나온 인코딩
    반응형

    '프로그래밍 > 기록, 개념, 용어' 카테고리의 다른 글

    비교문 최적화에 도움 되는 개념. 드 모르간 법칙(De Morgan's laws)  (1) 2020.07.03
    Idempotent Key  (0) 2020.06.14
    verbose 모드  (0) 2018.12.08
    poll api 이벤트들  (0) 2018.04.18
    난수 동기화  (0) 2018.02.06
Designed by Tistory.