Study/모몽이 공부중

인코딩/ 디코딩 개념

momong'-' 2020. 7. 15. 17:38

컴퓨터는 문자를 인식할 수 없으므로 코드로 변환하여 저장됨. 문자를 코드로 변환하는 것을 인코딩, 코드를 문자로 변환하는 것을 디코딩이라 함


인코딩(Encoding)

: 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것

인코딩 = 부호화 = 코드화 = 암호화


디코딩(Decoding)

: 부호화된 정보를 부호화되기 전으로 되돌리는 처리/처리방식. 사용자가 이해할 수 있도록 바꿔주는 것. 바이트 형식을 문자(문자열)로 변환

디코딩 = 복호화 = 역코드화

 


한글 조합형 인코딩, 조합형

한글을 그 낱자에 따라 기계적으로 조합하여 표현하는 문자 인코딩들을 총칭하는 ㅁ라

 

종류

n바이트 조합형

3바이트 조합형

2바이트 조합형

 

 

현재 조합형은 거의 사용되지 않으며 유니코드가 흔히 사용됨. 넓은 의미에서 보면 유니코드의 한글 자모 및 음절 영역이 조합형 인코딩의 영향을 받은 것이라고 볼 수 있음


한글 상용 조합형 인코딩, 상용 조합형, 종합형

한글을 2바이트 코드로 표현. 최상위 비트는 1로 설정하고 초성, 중성, 종성에 각각 5비트씩 할당하여 차례로 조합

 

구성

"한글 상용 조합형 인코딩", 위키피디아

  1. 행 번호에 0x191(특수문자의 경우, 0x30행 미만) 또는 0x176(한자의 경우, 0x4A행 이상)을 더한다. 이 값을 2로 나눈 몫을 첫 번째 바이트로 한다.
  2. 1에서 나온 값이 짝수인가 홀수인가에 따라, 열 번호에 0x3D를 더하거나(홀수) 0x21을 뺀다(짝수).
  3. 2에서 나온 값이 0x4E보다 작으면 0x31을 더하고, 아니면 0x43을 더해서 두 번째 바이트로 한다.

한글 완성형 인코딩, 완성형

한글을 그 구조와 관계 없이 코드를 배당하여 표현하는 문자 인코딩들을 총칭하는 말

 

7비트 완성형

= 청계천 한글, 7×2 한글

최상위 비트를 사용할 수 없는 영문 프로그램들에서 사용하기 위해 만들어짐. 

 

2바이트 완성형

한글 문자 집합 및 인코딩 표준화 과정에서 이미 사용되고 있던 조합형 인코딩을 수용할 경우, 그 인코딩을 사용하는 업체와 사용하지 않는 업체 사이의 형평성이 문제가 되어 새로 만들어졌다는 견해가 존재. 11172자 한글 중 2350자만 나타내므로 쓸 수 없는 글자가 많음

 


한글 인코딩 종류

UTF-8

조합형방식의 문자집합(Charater Set), 유니코드 인코딩 방식 중 하나

초성, 중성, 종성 각각 1바이트로 인식해 일반적으로 한글을 3바이트로 인식, 공백이나 영문은 1바이트로 인식

 

장점

- 다른 국가에서 한글 언어팩이 설치되지 않았다고 하더라도 한글 표현 가능. 같은 방식으로 우리 나라에서도 다른 나라의 언어 볼 수 있음. => 다양한 언어로 작성되는 환경이나 다양한 국자의 사람들이 보는 경우 좋은 방식

 

EUC-KR, CP949 (MS949)

완성형 인코딩 방식. 한글을 2바이트로 사용하는 문자집합(Character Set).

 

단점

- EUC-KR을 사용하는 국가에서만 문자가 보임 => 한글과 영어만 사용하는 페이지에 적합

 


기본 한글 인코딩

Window: MS949 (원래 CP949방식을 사용했는데 마이크로소프트에서 EUC-KR 방식으로 확장하여 MS949라 부름)

LInux: UTF-8

 


Java

2020/07/16 - [Study/Java] - [Class String] Encode/Decode Constructor, Method

 

 

 

 

참고