날짜 : 2024-06-20
개요
코딩하다 보면 U+0041 이런거 많이 보이는데 이게 뭔지 알려드리겠습니다.
핵심내용 키워드
U+ 는 유니코드 코드 포인트임을 나타내고, 뒤의 0041은 16진수로 ‘A’를 나타내는 실제 코드 포인트임 , 인코딩 , 바이트로변환
메모
개발중 에디터및 , 인코딩된 값들을 보다가 궁금하여 웹에서 찾아봄.
코드포인트가 뭔데요?
그냥 문자에 번호 매긴거입니다.
- A는 65번 (16진수로 0041)
- B는 66번
- 가는 44032번 (16진수로 AC00)
이런식으로 모든 문자마다 고유 번호가 있는거죠.
유니코드 코드 포인트는 다양한 언어의 문자를 포함하고 있으며, 이를 통해 전 세계적으로 일관된 텍스트 데이터의 표현과 교환을 가능하게 합니다. 이러한 코드 포인트는 다양한 인코딩 방식으로 실제 바이트 시퀀스로 변환될 수 있습니다, UTF-8, UTF-16, UTF-32 등은 이러한 유니코드 코드 포인트를 바이트로 변환하는 방법 중 일부입니다.
왜 이렇게 하는건데요?
컴퓨터는 문자를 직접 이해 못합니다. 숫자만 알아들어요.
그래서 문자마다 번호를 매겨서
- 사람은 문자로 보고
- 컴퓨터는 번호로 처리하고
실제로 어떻게 쓰이나요?
// 문자의 코드포인트 확인하기
console.log('A'.charCodeAt(0)); // 65 출력
console.log('가'.charCodeAt(0)); // 44032 출력
// 코드포인트로 문자 만들기
console.log(String.fromCharCode(65)); // 'A' 출력왜 U+ 붙이는건가요?
U+는 “이게 유니코드다!” 라고 표시하는거임
- 그 뒤에 숫자가 실제 코드포인트
- U+0041 = A
- U+AC00 = 가
UTF-8 인코딩에서 이 문자는 세 개의 바이트로 표현됨. 다른 문자들도 마찬가지로 각각의 유니코드 코드 포인트를 갖고, 이를 기반으로 인코딩됨
이런 방식으로 유니코드는 전 세계 언어의 문자를 유니버설하게 표현하고, 데이터의 호환성과 교환성을 높이는 데 기여한다고함.
실제 저장은 어떻게 되나요?
UTF-8이라는 방식으로 변환해서 저장합니다
- 영어: 1바이트
- 한글: 3바이트
- 이모지: 4바이트
이렇게 바이트로 쪼개서 저장하는거임