문자집합과 인코딩/디코딩
문자집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음.
문자 집합에 속한 문자라고 해서 컴퓨터가 바로 이해할 수 있는 것은 아니고 0과 1로 변환하는 작업이 필요한데, 이 변환 과정을 문자 인코딩이라고 한다.
0과 1로 이루어진 코드를 반대로 사람이 이해할 수 있는 문자로 변환하는 과정을 디코딩이라고 한다.
문자 → 0, 1 : 인코딩 (컴퓨터가 읽게)
0, 1 → 문자 : 디코딩 (사람이 읽게)
아스키 코드(ASCII)
한글 인코딩
완성형 인코딩 : 초성, 중성, 종성의 조합으로 이루어진 완성된 하나의 글자에 고유한 코드를 부여
ex) EUC-KR (글자당 2byte)
조합형 인코딩 : 초성, 중성, 종성에 각각 비트열을 부여한 후 조합하여 하나의 글자 코드를 완성
EUC-KR로 총 2,350개 정도의 한글 단어를 표현할 수 있게 되었으나, 여전히 모든 한글을 표현할 수는 없기 때문에 웹사이트에서 글자가 깨진다거나 입력되지 않는 현상이 발생한다는 단점이 있다.
또한 다국어를 지원해야 하는 경우 각 나라의 인코딩 방식을 모두 지원해야 한다.
유니코드
대부분의 문자, 특수문자, 이모티콘까지 아우르는 통일된 문자 집합.
아스키코드나 EUC-KR처럼 글자에 부여된 값 자체를 인코딩 값으로 삼지 않고, 이 값을 다양한 방법으로 인코딩하는데 인코딩 방법에 따라 UTF-8, UTF-16, UTF-32 등으로 나뉜다.