>  기사  >  웹 프론트엔드  >  utf8과 유니코드 인코딩의 관계는 무엇입니까? 차이점이 무엇인가요?_기본 튜토리얼

utf8과 유니코드 인코딩의 관계는 무엇입니까? 차이점이 무엇인가요?_기본 튜토리얼

WBOY
WBOY원래의
2016-05-16 12:09:422046검색

UTF8 == 유니코드 변환 형식 -- 8비트
는 유니코드 전송 형식입니다. 즉, 유니코드 파일을 BYTE 전송 스트림으로 변환합니다.

UTF8 스트림 변환 프로그램:
입력: 부호 없는 정수 c - 인코딩할 문자의 코드 포인트(유니코드 값 입력)
출력: 바이트 b1, b2,b3, b4 - 인코딩된 바이트 시퀀스(4개의 BYTE 값 출력)
알고리즘:
if (cb1 = c>>0 & 0x7F | 0x00
b2 = null
b3 = null
b4 = null
else if (cb1 = c>>6 & 0x1F | 0xC0
b2 = c>>0 & 0x3F | 0x80
b3 = null
b4 = null
else if (cb1 = c>>12 & 0x0F | 0xE0
b2 = c>>6 & 0x3F | 0x80
b3 = c >>0 & 0x3F | 0x80
b4 = null
else if (cb1 = c>>18 & 0x07 | 0xF0
b2 = c>>12 & 0x3F | >>6 & 0x3F | 0x80
b4 = c>>0 & 0x3F | 0x80
end if
===============
유니코드는 예를 들어 한자에 대한 코드를 지정하는 코딩 테이블입니다. GB2312-1980, GB18030 등과 유사하지만 문자 집합이 다릅니다.
=====================
유니코드 코드는 길이가 1바이트, 2바이트, 3바이트, 4바이트인 UTF8로 변환될 수 있습니다. 코드는 유니코드 코드의 값에 따라 달라집니다. 영어 유니코드 코드의 값은 0x80보다 작기 때문에 1BYTE의 UTF8로만 전송하면 되는데, 이는 2BYTE의 유니코드를 보내는 것보다 빠릅니다.
UTF8은 유니코드를 전송하기 위해 고안된 "재인코딩" 방법일 뿐입니다.
UTF8을 유니코드로 변환하려면 위에서 제공한 프로그램을 사용하여 역계산하면 됩니다.

UTF8은 기존 ASCII 시스템에서 유니코드 시스템으로의 전환 솔루션입니다. UTF8은 ASCII 호환성을 보장하고 큰 문자 집합으로 확장됩니다. 이는 유니코드에서 권장하는 솔루션입니다. 그러나 문제를 해결하는 각도가 다르기 때문에 기존 중국 시스템에는 좋은 해결책이 아닙니다. 다음 링크는 UTF8 인코딩에 대한 자세한 예비 지식을 제공합니다. http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102 참조:
http://www.acnis.com/modules.php? name=ArticlE&file=article&sid=102
유니코드란 무엇입니까? 유니코드의 기본 목표는 모든 인코딩을 통합하는 것, 즉 모든 문자 집합을 포함하는 것입니다. 이러한 방식으로 시스템이 유니코드를 지원하는 한 이러한 문자 집합을 처리할 수 있습니다. 일반적으로 유니코드에는 2바이트가 있습니다. 현재의 모든 Windows 운영 체제는 유니코드를 지원합니다.

UTF8이란 무엇인가요? UTF8은 유니코드 인코딩입니다. 즉, 인코딩된 문자 집합이 유니코드와 일치합니다. 하지만 인코딩 방식이 다릅니다. 영어 문자의 경우 UTF8 인코딩은 1바이트를 사용하여 일반 인코딩과 동일합니다. 하지만 중국어의 경우 3바이트(메모리 3바이트)로 표현해야 합니다.

UTF8과 유니코드의 단점은 검색, 검색 등의 문제를 처리할 때 알고리즘이 (메모리에서) 더 복잡하고 비효율적인 것처럼 보인다는 것입니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.