7. ASCII , UNICODE, UTF-8

2018. 7. 5. 22:16

아스키코드 (ASCII)


  • ● 7bit (2의 7승 : 128 가지 문자)
  • ● American Standard Code for Information Interchange
  • ● 컴퓨터의 기본 저장 단위는 바이트(byte)이고, 1byte는 8bit이다.
  • ● 1byte에는 2의 8승에 해당하는 256개의 고유한 값을 저장할 수 있다.
  • ● 아스키코드는 7비트로 128개의 고유한 값을 저장한다. (문자 하나당 숫자 하나를 매핑, ● 1비트는 별도의 목적을 위해서 사용)
  • ● 로마자 및 특수 기호(한글 포함 안됨)
views
0~127에 각각 고유값을 저장

유니코드 (UNICODE)

  • ● 2byte (2의 16승 : 65,536가지 문자)
  • ● 한글은 자음과 모음의 조합 개수만해도 128개를 넘는다.
  • ● 이와 같이 7bit ASCII 코드에 담을 수 없는 문자를 정의하기 위해서 2byte 국제표준코드 유니코드가 등장하였다.
  • ● 2byte는 16bit로 2의 16승 약 6만 5천개의 문자를 저장할 수 있다.
  • ● 유니코드로 ASCII 코드를 포용 가능하다.

UTF-8

  • ● 유니코드 부호화 방식 (8bit 기반 )
  • ● 가변 길이 유니코드 인코딩 시스템
  • ● 특정 문자 집합 안의 문자들을 컴퓨터 시스템 안헤서 사용할 목적으로 일정한 범위 안의 정수 (코드값) 들로 변환하는 방법
  • ● ASCII 코드의 언어는 1byte로 나타내며, 한글의 경우 3byte로 나타낸다.

utf-8 탄생 배경

  • ● 유니코드를 사용하면 영어권 사용자들은 메모리 낭비가 2배가 된다. (영어는 1byte ascii로 충분하기 때문에)
  • ● 유니코드는 2byte로 규약을 했으나 메모리에 저장하고, 네트워크에 통신 할 때 한번 걸러서 저장을 한다 (부호화 : encoding)
    • 0~127 사이에 존재하는 모든 코드 포인트(ASCII)들을 1byte로 저장
    • 128 이상인 것은 2byte, 3byte로 저장한다. (한글은 3byte)



출처: https://wayhome25.github.io/cs/2017/04/05/cs-06/

'Get IT Note > Java' 카테고리의 다른 글

8. int Array -> Integer List 변환하기  (0) 2018.07.16
6. String, StringBuffer, StringBuilder 의 차이점  (0) 2018.07.04
5. 불변객체와 가변객체  (0) 2018.07.04
4. ArrayList와 Array간 변환  (0) 2018.07.03
3. 예외처리  (0) 2018.07.03

BELATED ARTICLES

more