문자셋과 문자셋 인코딩이란 말은 자주 섞어쓰게 됩니다.
문자셋 인코딩을 간단하게 문자셋이라고 부르기도 하고 인코딩이라고 부르기도 합니다.
이런게 혼용되서 사용하다보니 처음에 개념잡기가 너무 힘들었습니다.
그래서 문자셋과 문자셋 인코딩의 개념에 대해서 간단하게 설명하고자 합니다.
문자셋이란 문자들의 모임입니다.
영어라면 {abcd...ABCD...} 한글이라면 {가갸거겨...힣} 이런 식입니다.
색깔셋이 있다면 {빨주노초파남보...} 뭐 이렇겠죠.
그럼 문자셋 인코딩이란 무엇인가? 문자셋 인코딩은 문자모임을 출력시키기 위해 필요합니다.
그림파일도 여러가지 포맷이 존재합니다. jpg, png, gif 등등.
같은 빨강색이라도 기록되어 있는 바이트는 포맷방식 마다 서로 다릅니다.
그것처럼 문자도 마찬가지 입니다. 똑같은 글자라도 문자셋 인코딩에 따라 바이트가 다릅니다.
유니코드를 예로 이야기 하겠습니다.
유니코드에서 '자'는 16진수로 'C790'번(?) 입니다.
이 '자'를 UTF-8 인코딩으로 표현하면 3바이트로 나타낼 수 있습니다.
10진수로 나타내보면 '236, 158, 144' 입니다.
이 3개의 바이트를 UTF-8 인코딩에 대입하면 유니코드 문자셋의 'C790'번에 위치하는 '자'라는 글자와 매치가 되는 것입니다.
EUC-KR은 유니코드 문자셋에 대한 인코딩 방식이 아닙니다.
따로 한글 문자셋에 대한 인코딩 방식인데 이 한글 문자셋(이하 EUC-KR용 문자셋)에 대한 명칭을 잘 모르겠습니다.
'자'라는 글자를 EUC-KR로 표현하면 2바이트 '192, 218'로 나타낼 수 있습니다.
이 2개의 바이트를 EUC-KR 인코딩에 대입하면 EUC-KR용 문자셋의 '자'라는 글자와 매치가 되는 것입니다.
유니코드 문자셋에는 모든 나라의 언어를 지원하는데 비해 EUC-KR용 문자셋은 한글 이외의 언어를 제대로 지원하지 못합니다.
문자셋과 이 문자셋에 있는 글자를 표현하기 위한 인코딩이 잘못되었을 경우 글씨가 깨져서 나타나게 되는 것입니다.
'236, 158, 144'를 UTF-8로 읽어야 유니코드 문자셋과 매치하여 '자'라는 글자가 되지 EUC-KR로 읽으면 EUC-KR용 문자셋과 매치하여 '옄'으로 표시됩니다.
울트라에디트등의 편집기를 이용해서 UTF-8, EUC-KR 이 두가지 인코딩으로 저장한 텍스트 파일을 만들어 이진편집을 해보면 기록된 바이트를 직접 눈으로 확인하 실 수 있습니다.
문자셋 인코딩을 간단하게 문자셋이라고 부르기도 하고 인코딩이라고 부르기도 합니다.
이런게 혼용되서 사용하다보니 처음에 개념잡기가 너무 힘들었습니다.
그래서 문자셋과 문자셋 인코딩의 개념에 대해서 간단하게 설명하고자 합니다.
문자셋이란 문자들의 모임입니다.
영어라면 {abcd...ABCD...} 한글이라면 {가갸거겨...힣} 이런 식입니다.
색깔셋이 있다면 {빨주노초파남보...} 뭐 이렇겠죠.
그럼 문자셋 인코딩이란 무엇인가? 문자셋 인코딩은 문자모임을 출력시키기 위해 필요합니다.
그림파일도 여러가지 포맷이 존재합니다. jpg, png, gif 등등.
같은 빨강색이라도 기록되어 있는 바이트는 포맷방식 마다 서로 다릅니다.
그것처럼 문자도 마찬가지 입니다. 똑같은 글자라도 문자셋 인코딩에 따라 바이트가 다릅니다.
유니코드를 예로 이야기 하겠습니다.
유니코드에서 '자'는 16진수로 'C790'번(?) 입니다.
이 '자'를 UTF-8 인코딩으로 표현하면 3바이트로 나타낼 수 있습니다.
10진수로 나타내보면 '236, 158, 144' 입니다.
이 3개의 바이트를 UTF-8 인코딩에 대입하면 유니코드 문자셋의 'C790'번에 위치하는 '자'라는 글자와 매치가 되는 것입니다.
EUC-KR은 유니코드 문자셋에 대한 인코딩 방식이 아닙니다.
따로 한글 문자셋에 대한 인코딩 방식인데 이 한글 문자셋(이하 EUC-KR용 문자셋)에 대한 명칭을 잘 모르겠습니다.
'자'라는 글자를 EUC-KR로 표현하면 2바이트 '192, 218'로 나타낼 수 있습니다.
이 2개의 바이트를 EUC-KR 인코딩에 대입하면 EUC-KR용 문자셋의 '자'라는 글자와 매치가 되는 것입니다.
유니코드 문자셋에는 모든 나라의 언어를 지원하는데 비해 EUC-KR용 문자셋은 한글 이외의 언어를 제대로 지원하지 못합니다.
문자셋과 이 문자셋에 있는 글자를 표현하기 위한 인코딩이 잘못되었을 경우 글씨가 깨져서 나타나게 되는 것입니다.
'236, 158, 144'를 UTF-8로 읽어야 유니코드 문자셋과 매치하여 '자'라는 글자가 되지 EUC-KR로 읽으면 EUC-KR용 문자셋과 매치하여 '옄'으로 표시됩니다.
울트라에디트등의 편집기를 이용해서 UTF-8, EUC-KR 이 두가지 인코딩으로 저장한 텍스트 파일을 만들어 이진편집을 해보면 기록된 바이트를 직접 눈으로 확인하 실 수 있습니다.




최근 덧글