유니코드가 없을 때도 각 나라들은 알아서 자국 문자를 잘 표현하였지만, 다양한 나라가 서로 다른 인코딩 방식을 사용함으로써 호환성 및 확장성에 문제가 생겼다.
결국, 전 세계 문자를 컴퓨터에서 다룰 수 있도록 만든 표준 시스템을 만들었다.
대부분의 문자와 이모티콘이 포함되어 있다.
유니코드 확인하기
코드 포인트 범위 - 0x0 ~ 0x10FFFF (1114112개 문자)
현재 쓰이는 대부분의 문자는 Basic Multilingual Plan(BMP)에있고, 안에 Surrogate Area를 포함한다.
2byte보다 큰 문자열을 사용하기 위해선 Surrogate Pair 방법을 이용해 2바이트보다 큰 문자를 표현한다.
BMP외부의 문자와 BMP 내부의 Surrogate Area의 보조문자를 결합하여 사용한다.
Big-Endian
은 사람이 읽고 쓰는법과 같아서 사람이 보기에 편하고, Little-Endian
은 하위 바이트만 계산할 때 별도의 계산이 필요없으므로 컴퓨터가 사용하기에 더 편하다.
// 다음 이모지는 4바이트로 구성되어 있다. const poo = "🎉" console.log(poo.charCodeAt(0).toString(16)) // Code Point -> d83c console.log(poo.charCodeAt(1).toString(16)) // Code Point -> df89 // \u를 통해 유니코드 문자로 표현할 수 있다. const unicodePoo = "\ud83c\udf89" // 둘은 같다. console.log(poo === unicodePoo); // 이모지는 문자 길이를 2 차지한다. console.log(poo.length); // 유니코드에서 영어든 한글이든 2바이트로 읽힌다. // 따라서 한글은 한 글자당 길이를 1 차지한다. console.log("한글".length);