티스토리 뷰
정확한 정보를 얻으려면
네이버의 설명참조 : http://d2.naver.com/helloworld/19187
<코드 포인트 범위 | 비트 수 | 인코딩 |
U+0000~U+007F | 7 | 그대로 인코딩 |
U+0080~U+07FF | 11 | 110xxxxx 10xxxxxx |
U+0800~U+FFFF | 16 | 1110xxxx 10xxxxxx 10xxxxxx |
U+10000~U+1FFFFF | 21 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
UTF-8은 멀티바이트 코드 (=내용에 따라 크기를 끊어 읽는다)
1바이트인 경우 아스키 코드와 동일 (이것 때문에 세계 표준이 됨)
한글str 은 3 바이트에서 표현됨 (메모리에서 처리할때)
이모티콘은 4바이트 (UTF-MB4)
유니코드는 2바이트
- 16 진수 코드 페이지, 한글은 \xea \x__ \x__ 이렇게 시작한다
- 유니코드 포인트는 2바이트로 표현되지만
- 실제 유니코드 한글의 크기는 멀티바이트(3바이트) 이다
-----------------------------------------------------------------------
1. 문자는 숫자다 (str 타입 바이트열)
컴퓨터는 문자도 숫자처럼 사용한다(암호화된 문자, Encoding)
초창기엔 영어만 숫자화 했다 = ascii
각자 언어를 숫자화 했다 (특히 아시아 CJK) = euc-kr
국제표준에서 하나 만들어보자 = ISO-8xxx
아 님들, 좀 통일해서 씁시다 = utf-8 (유니코드(회사)에서 만든 인코딩)
아스키 코드의 0~127까지는 UTF-8로 완전히 동일하게 기록된다
2. 문자는 그림이다 (유니코드 코드 포인트)
문자는 그냥 그림일 뿐, 한꺼번에 처리한다 (복호화된 문자, Decoding)
간절히 바라면 전세계 말을 한가지로 표현합니다
근데 컴퓨터는 이걸 읽는게 그렇게 어려운가요? (어렵답니다)
유니코드(코드포인트) = 그림책 한권 with page number
પ નુલુંગ લસશ니 엉덩이 더러워
-------------------------------------------------------------------------
유니코드 위키
전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식.
주요 구성 요소는 ISO/IEC 10646 Universal Character Set과 UCS, UTF 등의 인코딩 방식, 문자 처리 알고리즘 등이다.
전 세계의 모든 문자를 담는 ISO/IEC 10646 코드표를 사용함으로써,
각 언어와 문자 체계에 따른 충돌 문제를 해결하였다.
따라서 유니코드를 사용하면 한글과 신자체·간체자, 아랍 문자 등을 통일된 환경에서 깨뜨리지 않고 사용할 수 있다.
파이썬은 default encoding 이 ascii 다
'바이트열'.encode('코드명') 를 하면
1. 일단 decode() 후에 ascii와 비교 후 값이 같으면
2. encode('코드명') 함
'유니코드'.decode()
1. 일단 encode('ascii')하고
2. decode한다