Unicode 자체는 encoding 방식이 아니라 문자와 순서를 1:1로 매칭한 하나의 코드 표를 나타낸다.
Unicode는 문자 1개를 2 byte를 표현한다. 그래서 Unicode에 의해 encoding된 문자열은 "\x00"
가 아니라 "\x00\x00"
으로 끝난다.
이러한 이유로 Unicode의 Null 종단 문자는 2 byte이다. : "\x00\x00"
UTF-16 : 16-bit Unicode Transformation Format
BE : Big Endian
Unicode에 따라, Big Endian 형태로
한 문자를 16 bit (2 byte)로 표현하는 encoding 방식이다.
"%uFEFF"
을 붙인다.원래 BOM은 프로그램에게 텍스트에 대한 정보를 주는 역할을 한다.
UTF-16에서 BOM은 Endian에 관한 정보를 준다.
BOM :
%uFEFF
: UTF-16BE : Big Endian
BOM :
%uFFFE
: UTF-16LE : Little Endian
💡 UTF-16BE Format :
"%uFEFF .... %u0000"
"A"
: "%uFEFF%u0041%u0000"
특정 인코딩 방식 한 가지를 가리키는 말이 아니라 the default local/codepage for my system을 의미한다.
각 CodePage 마다 코드표가 따로 존재해 각 언어에 따른 별도의 CodePage를 사용한다.
(ex: EUC-KR, CP949 : 한글에 대응되는 CodePage)
한글은 2 byte로 한 문자를 표현하지만 영어는 1 byte로 한 문자를 표현한다.
\x00
UTF-16과 달리 BOM을 사용하지 않는다.
💡 ANSI Format :
"\x.. .. \x00"
"A" : "\x41\x00"
피드백은 언제나 환영합니다