문자 인코딩 Character Ecoding
사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호(바이너리 데이터(0, 1))로 만드는 것
- 컴퓨터에서 한글 문자열을 입력한 후 저장하면 한글을 바이너리 데이터로 변환한다.
- Decoding: 0과 1로 구성된 바이너리 데이터를 다시 문자로 복구하는 것
문자 셋 Character Set
- 인코딩과 디코딩을 위해 미리 정해진 규칙
- 문자 <-> 바이너리 데이터로 변환할 때 따르는 코드표
- 종류
- ASCII (American Standard Code for Information Interchange)
- 7bit 영어 + 1bit parity bit (128개 문자)
- EBCDIC
- ANSI (Extended ASCII)
- 8bit (256개 문자)
- 영어권 외의 문자도 표현
- Multibyte Encoding
- 1byte가 아닌 여러 byte를 통해 문자 표현
- UNICODE
- 1byte를 2~3byte로 확장하며 세계 모든 문자를 표현하는 표준 코드
- ASCII (American Standard Code for Information Interchange)
UNICODE
- 전세계의 모든 문자를 하나의 문자 셋으로 표현
- 각 나라만의 언어를 표현하는 인코딩 방식과 문자열 셋으로는 모든 언어를 동시에 표현할 수 없다.
- 전세계적으로 사용되는 모든 문자 집합
- 목적: 현존하는 문자 인코딩 방법들을 모두 유니코드로 교체
- 장점: 하나의 프로그램으로 모든 나라의 글자를 처리할 수 있다.
- 단점: 영어권 국가에서는 ASCII 코드보다 2배의 공간이 필요하다. 통신 시 자원 낭비
- 유니코드 인코딩 방식
- UTF-8(ASCII와 호환 가능, 가장 크기가 작음), UTF-16, UTF-32
문제점
서로 다른 인코딩 방식을 사용한 프로그램이나 문서 사이에는 정상적으로 디코딩되지 않는 호환성 문제가 발생한다.
EUC-KR
특징
- 완성형 인코딩 방식
- 완성된 단어가 있어야만 표현이 된다.
- 멀티바이트 인코딩: 2350자
- 2byte(16bit) 사용
- 완성된 문자가 없을 경우 한글이 깨져 보일 수 있다.
- 한글, 한국에서 통용되는 한문(일본식 한자, 중국 간체자 제외), 영문, 일어, 특수 기호 표현 가능
- 한글 1글자 = 2byte
- 아스키코드에는 미국에서 사용되는 숫자, 알파벳만 들어있었기 때문에 한글과 같은 다른 문자 체계 표현이 불가능했다. 따라서 나라마다 문자열 표를 다 각각 만들었다.
- 인코딩이 통일되지 않아서 문자가 깨지는 현상이 자주 발생한다.
- EUC-KR로 표현 불가능한 외국어와 한글을 동시에 사용할 수 없다.
예시
안 녕
UTF-8
특징
- 조합형 인코딩 방식
- 자음, 모음을 조합해서 글자가 표현된다.
- 멀티바이트 인코딩: 2yte 조합, 3byte 조합, N byte 조합
- UNICODE를 사용한 인코딩 방식
- 최근 많이 사용한다.
- 한글, 이모티콘까지도 완벽히 표현할 수 있다.
- 한글 1글자 = 3byte
- 영문, 숫자, 공백, 특수 기호 = 1byte
- EUC-KR보다 문서 파일의 용량이 늘어난다.
예시
ㅇ ㅏ ㄴ ㄴ ㅕ ㅇ
'내일배움캠프 > TIL' 카테고리의 다른 글
2024.10.14(월) 파이썬 시작 (0) | 2024.10.14 |
---|---|
2024.10.08 아티클 스터디 (0) | 2024.10.08 |
2024.10.04(금) SQL로 피벗테이블 만들기 (0) | 2024.10.04 |
2024.10.04(금) 조회한 데이터가 상식적이지 않을 때 (0) | 2024.10.04 |
2024.10.02(수) [1주차] 데이터 직무 산업별 직무 이해 & SQL 이해 (0) | 2024.10.02 |