ASCII — 인코딩의 출발점
시대: 1960년대
범위: 영어 알파벳, 숫자, 기본 특수문자 (총 128자)
ASCII(American Standard Code for Information Interchange)는 현존하는 모든 문자 인코딩의 뿌리
영어만 쓰던 시절에 만들어졌고, 한 문자를 7비트(1바이트)로 표현
예를 들어:
- A → 65 (0x41)
- a → 97 (0x61)
- 0 → 48 (0x30)
ASCII는 지금도 여전히 모든 인코딩의 하위 호환 기반
즉, UTF-8, ISO-8859-1, EUC-KR 등은 ASCII 문자 영역을 그대로 유지
요약: 인코딩의 원조. 영어만 가능하지만, 모든 문자 시스템의 기초.
EUC-KR & CP949 — 한국어 인코딩의 역사
시대: 1980~1990년대
범위: 한글 완성형 문자
바이트: 2바이트 인코딩
EUC-KR
- UNIX와 리눅스 환경에서 사용된 한국어 인코딩
- 완성형 한글(2바이트) 지원
- 총 2,350여 개의 한글 음절을 표현 가능
- 한글 조합형(자음+모음 조합)은 지원하지 않음
CP949 (또는 Windows-949)
- 마이크로소프트가 EUC-KR을 확장한 버전
- 11,172자 전체 한글 음절 + 추가 한자 지원
- 윈도우 환경의 표준 한글 인코딩
EUC-KR과 CP949는 거의 비슷해 보이지만, 서로 호환되지 않는 부분이 있어 문서 깨짐(�) 문제가 종종 발생
요약: 한글 완성형 인코딩. 지금은 UTF-8로 대체되었지만, 옛 데이터에서는 여전히 중요.
Shift-JIS — 일본어의 대표 인코딩
시대: 1980~1990년대
범위: 일본어(히라가나, 가타카나, 한자)
바이트: 1~2바이트 (가변 길이)
Shift-JIS는 일본의 JIS 문자 집합을 기반으로 한 인코딩
문자에 따라 1바이트 또는 2바이트를 사용하는 가변 길이 구조이며, 마이크로소프트 윈도우와 웹에서 널리 사용
다만, Shift-JIS는 EUC-JP, ISO-2022-JP와 호환되지 않아
메일이나 웹에서 깨짐이 빈번하게 발생
요약: 일본어 전용 인코딩. 윈도우 중심으로 쓰였지만 호환성 문제 많음.
Unicode (UTF-8 중심) — 현대의 표준
시대: 1990년대 이후
범위: 전 세계 모든 문자
대표 인코딩: UTF-8, UTF-16, UTF-32
유니코드는 모든 문자를 고유 코드포인트(U+XXXX) 로 부여하여
언어마다 충돌 없이 표현할 수 있게 만든 국제 표준
UTF-8
- 웹의 기본 인코딩
- 영어는 1바이트, 한글은 3바이트, 이모지는 4바이트
- 가변 길이 구조
- ASCII와 완벽 호환 (영문은 동일한 코드로 저장)
UTF-16
- 문자를 2바이트 또는 4바이트로 표현
- 윈도우, 자바, C# 내부에서 주로 사용
UTF-32
- 모든 문자를 4바이트로 고정
- 단순하지만 메모리 비효율적 → 내부 처리용
현재는 대부분의 OS, 웹, 프로그래밍 언어가 UTF-8을 기본으로 사용
요약: 전 세계 문자 통합 표준. 오늘날 사실상 유일한 선택지.
요약 비교
| 인코딩 | 주요 언어 | 바이트 수 | 특징 | 현재 사용 |
| ASCII | 영어 | 1B | 기본 문자 체계 | 기반으로 사용 |
| EUC-KR / CP949 | 한글 | 2B | 완성형 한글 | 구형 시스템 |
| Shift-JIS | 일본어 | 1~2B | 일본어 전용 | 구형 환경 |
| UTF-8 | 전 세계 | 1~4B | 표준 인코딩 | 현재 표준 |