귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 구조 == === 코드 포인트 === 유니코드에서 문자 하나하나에 부여된 고유 번호를 '''코드 포인트'''(code point)라고 부른다. 표기할 때는 'U+' 뒤에 16진수를 붙여서 쓴다. 예를 들어 알파벳 대문자 A는 U+0041, 한글 '가'는 U+AC00이다. 현재 유니코드는 U+0000부터 U+10FFFF까지, 총 '''1,114,112개'''의 코드 포인트 공간을 가지고 있다. 이 중 실제로 문자가 할당된 것은 일부이고 나머지는 앞으로 새 문자를 위해 비워둔 공간이거나, 사용자가 자유롭게 쓸 수 있는 [[사용자 정의 영역]](Private Use Area)이다. === 평면(Plane) === 유니코드 공간은 편의상 65,536개(0x10000)씩 묶어 총 17개의 '''평면'''(plane)으로 나눈다. {|class="wikitable" ! 평면 번호 !! 범위 !! 이름 !! 설명 |- | 0 || U+0000~U+FFFF || 기본 다국어 평면(BMP) || 한글, 한자, 라틴 문자 등 실생활에서 가장 많이 쓰는 문자 대부분이 위치 |- | 1 || U+10000~U+1FFFF || 보조 다국어 평면(SMP) || 고대 문자, 이모지, 수학 기호 다수 |- | 2 || U+20000~U+2FFFF || 보조 표의 문자 평면(SIP) || 잘 쓰이지 않는 CJK 확장 한자 |- | 3 || U+30000~U+3FFFF || 제3 표의 문자 평면(TIP) || 추가 한자 확장 영역 |- | 14 || U+E0000~U+EFFFF || 보조 특수 목적 평면(SSP) || 언어 태그 등 특수 제어용 |- | 15~16 || U+F0000~U+10FFFF || 사용자 정의 영역(PUA) || 표준에 없는 문자를 개인/조직이 임의로 정의해 쓰는 공간 |} === 인코딩 방식: UTF-8, UTF-16, UTF-32 === 유니코드는 "어떤 문자에 어떤 번호를 매길지"를 정한 표준일 뿐이고, 그 번호를 실제로 컴퓨터 메모리에 몇 바이트로 어떻게 저장할지는 별도로 정해야 한다. 이를 위한 대표적인 인코딩 방식이 세 가지 있다. * '''UTF-8''' ** 문자에 따라 1바이트에서 4바이트까지 가변적으로 사용한다. ** 영어(ASCII) 문자는 기존 ASCII와 완전히 호환되게 1바이트로 저장되고, 한글이나 한자는 보통 3바이트가 필요하다. ** 웹 페이지, 이메일, 대부분의 프로그래밍 언어 소스코드 등 인터넷 환경에서 사실상 표준으로 자리잡았다. * '''UTF-16''' ** 대부분의 문자를 2바이트로, 기본 다국어 평면을 벗어나는 문자(이모지 등)는 [[서로게이트 페어]](surrogate pair)를 이용해 4바이트로 저장한다. ** 자바(Java), 자바스크립트, 윈도우 내부 문자열 처리 등에서 많이 사용된다. * '''UTF-32''' ** 모든 문자를 예외 없이 고정 4바이트로 저장한다. ** 구조가 단순하지만 저장 공간을 많이 차지해서 실제로는 잘 쓰이지 않는다. === BOM(Byte Order Mark) === 파일 맨 앞에 붙어서 이 파일이 어떤 인코딩(UTF-8/UTF-16LE/UTF-16BE)으로 저장되었는지, 그리고 바이트 순서(엔디언)가 어떤지 알려주는 표식이다. UTF-8에서는 필수는 아니지만, 특히 윈도우 메모장 등에서 자동으로 붙이는 경우가 있어 프로그램에 따라 파일 맨 앞에 이상한 문자가 나타나는 원인이 되기도 한다. 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)