날짜 : 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바이트

이렇게 바이트로 쪼개서 저장하는거임

출처 (문헌)