CS

ASCII(아스키코드), unicode(유니코드), UTF-8

필자A 2022. 6. 5. 13:30

 

 

 

 

charater set - 문자문자를 1:1 매핑한 코드의 조합(?)

encoding - 이 charater set의 코드들을 어떻게 표현할 것인가

 

charater set에는 ASCII, unicode

encoding에는 UTF-8이 포함됩니다.

 

ASCII는 영문 알파벳을 사용하는 대표적인 문자 인코딩입니다.

7bit 범위까지 문자의 종류를 표현할 수 있습니다. (128개)

 

 

 

 

알파벳 'A'가 이진법, 팔진법, 십진법.. 등등에 1:1 매핑되어있습니다.

'A'는 65(십진법)로 매핑이 되어있습니다.

 

 

rl.on("line", (line) => {
    if(line === 'bye') rl.close();
    convertUnicode(line);
    
});

const convertUnicode = function(data) {
    for(let i = 0 ; i < data.length; i++) {
        console.log(data.charCodeAt(i));
    } 
}

 

 

위는 Javascript 코드입니다.

해당 코드는 문자열을 모두 ASCII(unicode)로 변환해주며

A를 대입시 65가 나옵니다.

 

하지만 ASCII는 영문 알파벳과 특수문자 정도만 지원을 하여 표에 없는 문자는 깨지고 맙니다.

 

이제 더 많은 문자를 지원하는 charater set이 있습니다.

unicode :유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며

2021년 기준으로 약 14만 개의 문자를 지원해줍니다.

(unicode가 2byte 범위까지 표현을 할 수 있다고 하지만 2byte는 약 65536개인데

14만 개면은 많이 부족하네요 위 2byte는 과거에 이미 깨졌다고 합니다!)

 

UTF-8는 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나입니다.

유니코드 하나의 문자를 나타내기 위하여 1 ~ 4byte를 사용합니다.

U+0000부터 U+007 F범위의 ASCII charater set범위의 문자들은

1byte만으로 표현할 수 있으며 그 외 문자들은 4byte 내로 가변적으로 표현할 수 있게 됩니다.

 

 

반응형