UTF-8 소개
UTF-8 일종의 겨냥이다 Unicode 의 가변 길이 문자 인코딩 , 만국 부호라고도 부른다 .
UTF-8 수납장 1 ... 에 이르다 6 바이트 인코딩 UNICODE 문자 .
UTF-8 인코딩 규칙
바이트만 있으면 최대 바이트는 0;
하면, 만약, 만약... , 첫 번째 바이트는 최고위부터 시작합니다. , 연속 바이너리 값은 1 의 개수가 인코딩된 바이트 수를 결정합니다 , 나머지 바이트는 모두 10 시작 .
Unicode/UCS-4 | bit 세다 | UTF-8 | byte 세다 | 비고 |
0000~ 007F | 0~7 | 0XXX XXXX | 1 | |
0080~ 07FF | 8~11 | 110X XXXX 10XX XXXX | 2 | |
0800~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX | 3 | 기본 정의 범위 :0~FFFF |
1 0000~ 1F FFFF | 17~21 | 1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX | 4 | Unicode6.1 범위 정의 :0~10 FFFF |
20 0000~ 3FF FFFF | 22~26 | 1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 5 | 설명 : 이것은 아니다 unicode 인코딩 범위 , ... 에 속하다 UCS-4 인코딩 초기의 규범 UTF-8 도착할 수 있다 6 바이트 시퀀스 , 덮어쓸 수 있습니다. 31 비트 ( 공통 문자 집합의 원래 한계 ). 그럼에도 불구하고 ,2003 연중 11 달. UTF-8 이불 RFC 3629 재규범 , 원래만 사용할 수 있습니다. Unicode 정의된 영역 ,U+0000 ... 에 이르다 U+10FFFF. 규범에 근거하다 , 이 바이트 값은 합법적으로 나타날 수 없습니다 UTF-8 시퀀스 |
400 0000~ 7FFF FFFF | 27~31 | 1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 6 |
UTF-8 이점
UTF-8 인코딩은 차단 비트와 이동 조작을 통해 빠르게 읽을 수 있다 . 문자열 비교 시 strcmp() 화목하다 wcscmp() 의 반환 결과가 같음 , 그래서 정렬이 더 쉬워졌어요 . 바이트 FF 화목하다 FE ... 에 있다 UTF-8 인코딩 중에는 영원히 나타나지 않습니다 , 그래서 그들은 표명할 수 있다 UTF-16 또는 UTF-32 텍스트 ( 보다 BOM) UTF-8 바이트 순서는 상관없어요 . 그것의 바이트 순서는 모든 시스템에서 같다 , 그래서 실제로는 필요하지 않아요. BOM.
UTF-8 결점
너는 따를 수 없다 UNICODE 문자수 판단 UTF-8 텍스트 바이트 수 , ... 때문에 UTF-8 일종의 변장 인코딩인데 얘가 써야 돼요. 2 바이트 인코딩 ASCII 문자 집합은 1 바이트 문자 ISO Latin-1 예. UNICODE 의 하위 집합 , 그렇지만 UTF-8 의 하위 집합 8 비트 문자의 UTF-8 인코딩은 email 게이트웨이 필터링 , ... 때문에 internet 정보는 7 자리 ASCII 부호 . 그래서 생겼어요. UTF-7 인코딩 . UTF-8 표현에 값 사용하기 100xxxxx 초과 50%, 현존하는 실현은 ISO 2022, 4873, 6429, 화목하다 8859 계통 , 그것을 옳다고 착각할 수 있다 C1 제어 코드 . 그래서 생겼어요. UTF-7.5 인코딩 .