사용자 도구

사이트 도구


programming:문자

문자

Charset 과 Char Encoding 의 차이는 무엇인가?

  • 문자표(character set)과 문자 인코딩(Character Encoding)은 매우 혼란스럽게 쓰인다.
  • character set 은 세상에서 쓰이는 문자와 기호들의 목록일 뿐이며 이것들은 Code Point라고 불리우는 어떤 숫자값으로 매핑돼 있다.
  • encoding 은 code point 를 어떻게 byte 로 표현하느냐의 문제이다.
  • 유니코드는 (거의) 전 세계의 모든 문자에 번호를 부여한 문자표(Character Set) 이다.
  • 하지만 유니코드는 여러가지 인코딩(Character Encoding) 방식으로 표현될 수 있다. UTF-8, UTF-16, UTF-32 등.
  • 하나의 Unicode 문자(code point)를 UTF-8, UTF-16, UTF-32 는 서로 다른 byte 들로 표현한다.
  • see Unicode
  • 문제는 현재 아주 많은 분야에서 문자셋과 인코딩을 혼란스러워하고 있다. 대부분의 경우 charset을 지정하라고 할 때 문자셋인 아닌 character encoding 을 지정해야 할 것이다.

과거의 한글 ''euc-kr'', ''cp949'' 등은 무엇인가?

  • euc-krcp949 등은 encoding이다.
  • 2바이트 완성형 문자셋(한글 2,350글자만 가능)인 KS C 5601(추후 KS X 1001 로 바뀜), KC C 5636(추후 KS X 1003으로 바뀜, KS C 5601과 거의 같으나 역슬래시가 원화 기호로만 대체된 버전)를 표현하는 방법이 euc-kr 인코딩이다.
  • Microsoft가 독자적으로 제정한 문자집합 확장완성형(통합형 한글 코드, Unifide Hangul Code) 문자셋(현대 한글 모두 포함하고 있음)이 있고 이를 표현하는 방법인 cp949/ms949가 인코딩이다.

참조

programming/문자.txt · 마지막으로 수정됨: 2022/03/20 00:04 저자 kwon37xi