Machineboy空
컴퓨터가 이해하는 데이터② - 문자 표기 (아스키 코드,EUC-KR에서 utf-8 인코딩까지) 본문
- 문자 집합(character set) : 컴퓨터가 이해할 수 있는 문자의 모음
- 인코딩과 디코딩 (꼭 문자에 국한해서만 사용되는 것은 아님 )
- 인코딩(encoding) : 코드화 ( 문자 >> 0,1로 이루어진 문자 코드 )
- 디코딩(decoding) : 코드 해석 ( 문자 << 0,1로 이루어진 문자 코드 )
1) 아스키 코드
초창기 문자 집합 중 하나로,
알파벳, 아라비아 숫자, 일부 특수 문자 및 제어 문자(enter, backspace 등)를 표현 가능
7비트로 하나의 문자를 표현한다.
실제로는 8비트를 사용하지만, 8비트 중 1비트는 오류 검출을 위해 사용되는 패리티 비트(parity bit)
즉 아스키 코드로 표현할 수 있는 총 문자의 개수는 2 7^ , 128개
코드 포인트(code point): 문자 하나에 부여된 값
ex) A의 코드 포인트는 65
장점 | 간단한 인코딩 |
단점 | 한글을 포함한 다른 언어 문자, 특수 문자 표현 불가 - 7비트로 하나의 문자를 표현하기에 128개 보다 많은 문자를 표현할 수 없다. - 8비트 확장 아스키(extended ASCII)가 등장했지만 여전히 부족하다. |
2) 언어별 인코딩 방식의 등장! (EUC-KR)
언어의 특성에 맞는 인코딩 방식의 필요성 대두
영어 | 한글 |
알파벳을 이어 쓰면 단어가 되는 영어 | 초성+중성+종성 |
완성형 인코딩 | |
완성된 한 글자에 고유한 코드 부여 | |
EUC-KR | KS X 1001 KS X 1003 문자 집합 기반의 한글 인코딩 |
글자 하나하나에 2byte 크기의 코드 부여 (2byte == 16bit == 4자리 16진수) |
|
![]() |
|
장점 | 2300여개의 한글 표현 가능 |
단점 | 여전히 모든 한글을 표현하기에는 부족 (뷃, 뙠, 휔 같은 한글 표현 불가) 실제로 EUC-KR로 인코딩되지 않는 문자의 이름을 가진 분이 핸드폰 명의, 은행 등 여러가지 문제를 겪고 있음을 호소하는 청원이 올라오기도 함 언어별 인코딩을 국가마다 하게 되면 다국어를 지원하는 프로그램을 개발할 시 언어별 인코딩을 모두 이해해야 하는 단점 |
DenCode | Encoding & Decoding Online Tools
Encoding and Decoding site. e.g. HTML Escape / URL Encoding / Base64 / MD5 / SHA-1 / CRC32 / and many other String, Number, DateTime, Color, Hash formats!
dencode.com
3) 통일된 문자 집합 & 인코딩 방식의 등장! (UTF-8)
모든 언어, 특수 문자까지 통일된 문자 집합의 필요성
- 유니코드: 통일된 문자 집합
- unicode에 16진수의 코드포인트(부여된 값)가 부여되어 있다
- 한글, 영어, 특수 문자(화살표 등), 이모티콘까지 지원
- 현대 문자 표현에 있어 매우 중요한 위치
- 유니코드의 인코딩 방식: unicode의 코드포인트(부여된 값)을 컴퓨터가 이해하는 0,1로 인코딩하는 방식 또한 다양하다.
- utf-8, utf-16, utf-32
https://symbl.cc/en/unicode/table/
Unicode Character Table - Full List of Unicode Symbols (◕‿◕) SYMBL
Unicode web service for character search. Find, copy and paste your favorite characters: 😎 Emoji, ❤ Hearts, 💲 Currencies, → Arrows, ★ Stars and many others 🚩
symbl.cc
utf-8 인코딩 |
*UTF(Unicode Transformation Format) = 유니코드 인코딩 방법 |
유니코드의 인코딩 방식 중 가장 대중적인 방식 |
가변 길이 인코딩 : 유니코드에 부여된 값(코드포인트)에 따라 인코딩 결과가 1~4byte |
![]() ![]() |
https://onlinetools.com/utf8/convert-utf8-to-binary
Convert UTF8 to Binary Bits
World's simplest online utility that converts UTF8 to binary. Free, quick, and powerful. Import UTF8 – get binary bits.
onlinetools.com
글자가 깨진다면 이제, 글자의 인코딩 방식이 잘못된 것은 아닌지 의심할 수 있을 것
'Computer > CS' 카테고리의 다른 글
C 언어 컴파일 과정 : 전처리(preprocess) - 컴파일(compile) - 어셈블(assemble) - 링크(link) (0) | 2024.01.04 |
---|---|
명령어의 구조(연산코드, 오퍼랜드)와 주소 지정 방식 (1) | 2024.01.03 |
소스 코드와 명령어 - 저급 언어, 고급 언어 (0) | 2024.01.03 |
컴퓨터가 이해하는 데이터① - 숫자 표기 : 2진법(binary), 16진법(hexadecimal) (1) | 2024.01.02 |
컴퓨터의 4가지 핵심부품 - CPU,메모리(RAM),보조기억장치,입출력 장치 (0) | 2024.01.01 |