목차
유니코드와 utf8 인코딩 재인식
유니코드와 utf8의 관계
먼저 UTF-8 변환에 대해 이야기해 보겠습니다. 🎜>
백엔드 개발 PHP 튜토리얼 유니코드 및 utf8 인코딩 다시 이해

유니코드 및 utf8 인코딩 다시 이해

Aug 08, 2016 am 09:23 AM
gt unicode

유니코드와 utf8 인코딩 재인식


정확히 말하면 오늘까지만 해도 UTF-8 인코딩과 유니코드 인코딩이 다르다는 사실을 몰랐는데 차이점이 있습니다
그들 사이에는 특정한 연관성이 있습니다. 차이점을 살펴보세요.

<code>UTF-8的长度是不一定的,有可能是1、2、3字节
Unicode长度一定,2个字节(USC-2)
UTF-8可以和Unicode互相转换</code>
로그인 후 복사

유니코드와 utf8의 관계


Unicode(16进制) UTF-8(二进制)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx

위 표에는 두 가지 의미가 있습니다. 첫 번째는 분명히 유니코드와 UTF-8 문자 범위 간의 대응입니다. 다른 하나는 유니코드가 UTF-8로 변환되는 방법을 보여줍니다.

먼저 UTF-8 변환에 대해 이야기해 보겠습니다. 🎜>
UTF-8로 인코딩된 바이너리는 위의 세 가지 형식과 일치한 후 고정 비트(테이블에서 x가 아닌 위치)가 제거되고 각 8비트 그룹이 오른쪽에서 왼쪽으로 사용됩니다. 8비트가 충분하지 않으면 왼쪽을 사용하지 마세요. 2바이트와 16비트는 UTF-8에 해당하는 유니코드 인코딩을 나타냅니다.


유니코드 및 utf8 인코딩 다시 이해위 그림에서 텍스트 인코딩 형식은 UTF-8이며 WinHex를 사용하여 16진수 표현을 볼 수 있습니다

<code>字符	=> UTF-8	  => UTF-8二进制=> 去掉固定位置凑够16位的二进制 => 16进制

汉 	=> E6B189 => 11100110 10110001 10001001	=> 01101100 01001001 => 6C49
汉 	=> E5AD97 => 11100101 10101101 10010111	=> 01011011	01010111 => 5B57

#下面是在chrome命令行下面运行的结果
'\u6C49'
"汉"
'\u5B57'
"字"

#到这里的话,从UTF-8转换到Unicode已经是一件非常容易的事了,看看转换的伪代码
读取一个字节,11100110
判断该UTF-8字符的格式,属于第三种,3个字节
继续读取2个字节得到 11100101 10101101 10010111
按照格式去掉固定位     1011011 01010111
不够16位,左边补零    01011011 01010111  => 5B57</code>
로그인 후 복사
유니코드에서 UTF-8로의 변환을 살펴보겠습니다
<code>5B57
获取5B57所在的Unicode范围,0800 <= 5B57 <= FFFF,得知5B57的UTF-8有三个字节,形式为1110xxxx 10xxxxxx 10xxxxxx
获取5B57的二进制编码 101101101010111
用上一步骤的二进制编码从右至左拼接UTF-8编码 11100101 10101101 10010111 </code>
로그인 후 복사
문제


오늘 문제의 원인에 대해 이야기해보겠습니다. UTF-8 형식의 단어 하나당 최대 30바이트이므로 검증이 필요합니다. 프론트엔드와 백엔드에서 별도로 진행됩니다. 자바스크립트는 유니코드 인코딩을 사용하며, 백엔드 프로그램은 UTF-8 인코딩을 사용합니다.

프론트엔드
<code>function utf8_bytes(str)
{
	var len = 0, unicode;
	for(var i = 0; i < str.length; i++)
	{
		unicode = str.charCodeAt(i);
		if(unicode < 0x0080) {
			++len;
		} else if(unicode < 0x0800) {
			len += 2;
		} else if(unicode <= 0xFFFF) {
			len += 3;
		}else {
			throw "characters must be USC-2!!"
		}
	}
	return len;
}

#例子
utf8_bytes('asdasdas')
8
utf8_bytes('yrt燕睿涛')
12</code>
로그인 후 복사
백엔드
<code>#对于GBK字符串
$len = ceil(strlen(bin2hex(iconv('GBK', 'UTF-8', $word)))/2);
#对于UTF8字符串
$len = ceil(strlen(bin2hex($word))/2);</code>
로그인 후 복사
5/21/2015 8:21:53 PM

이 글의 저작권은 작성자에게 있습니다. iforever (luluyrt@ 163.com) 저자의 동의 없이는 어떠한 형태의 재인쇄도 금지됩니다. 기사를 재인쇄한 후에는 기사 페이지에 위치를 명시하고 원본 텍스트 링크를 명시해야 합니다. 법적 책임을 추구합니다.

위 내용은 내용의 측면을 포함하여 유니코드와 utf8 인코딩에 대한 재이해를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? 화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? Dec 29, 2023 pm 02:27 PM

많은 사용자들이 스마트 시계를 선택할 때 Huawei 브랜드를 선택하게 됩니다. 그 중 Huawei GT3pro와 GT4가 가장 인기 있는 선택입니다. 두 제품의 차이점을 궁금해하는 사용자가 많습니다. Huawei GT3pro와 GT4의 차이점은 무엇입니까? 1. 외관 GT4: 46mm와 41mm, 재질은 유리 거울 + 스테인레스 스틸 본체 + 고해상도 섬유 후면 쉘입니다. GT3pro: 46.6mm 및 42.9mm, 재질은 사파이어 유리 + 티타늄 본체/세라믹 본체 + 세라믹 백 쉘입니다. 2. 건강한 GT4: 최신 Huawei Truseen5.5+ 알고리즘을 사용하면 결과가 더 정확해집니다. GT3pro: ECG 심전도, 혈관 및 안전성 추가

수정: Windows 11에서 캡처 도구가 작동하지 않음 수정: Windows 11에서 캡처 도구가 작동하지 않음 Aug 24, 2023 am 09:48 AM

Windows 11에서 캡처 도구가 작동하지 않는 이유 문제의 근본 원인을 이해하면 올바른 솔루션을 찾는 데 도움이 될 수 있습니다. 캡처 도구가 제대로 작동하지 않는 주요 이유는 다음과 같습니다. 초점 도우미가 켜져 있습니다. 이렇게 하면 캡처 도구가 열리지 않습니다. 손상된 응용 프로그램: 캡처 도구가 실행 시 충돌하는 경우 응용 프로그램이 손상되었을 수 있습니다. 오래된 그래픽 드라이버: 호환되지 않는 드라이버가 캡처 도구를 방해할 수 있습니다. 다른 응용 프로그램의 간섭: 실행 중인 다른 응용 프로그램이 캡처 도구와 충돌할 수 있습니다. 인증서가 만료되었습니다. 업그레이드 프로세스 중 오류로 인해 이 문제가 발생할 수 있습니다. 이 문제는 대부분의 사용자에게 적합하며 특별한 기술 지식이 필요하지 않습니다. 1. Windows 및 Microsoft Store 앱 업데이트

PHP에 대한 심층적인 이해: JSON 유니코드를 중국어로 변환하는 구현 방법 PHP에 대한 심층적인 이해: JSON 유니코드를 중국어로 변환하는 구현 방법 Mar 05, 2024 pm 02:48 PM

PHP에 대한 심층적인 이해: JSONUnicode를 중국어로 변환하는 구현 방법 개발 중에 JSON 데이터를 처리해야 하는 상황이 자주 발생하며, JSON의 유니코드 인코딩은 일부 시나리오, 특히 변환해야 할 때 몇 가지 문제를 일으킬 수 있습니다. 유니코드 인코딩을 한자로 변환하는 경우입니다. PHP에는 이러한 변환 프로세스를 달성하는 데 도움이 되는 몇 가지 방법이 아래에 소개되고 구체적인 코드 예제가 제공됩니다. 먼저 JSON의 Un을 먼저 이해해 봅시다.

유니코드를 중국어로 변환하는 방법 유니코드를 중국어로 변환하는 방법 Dec 14, 2023 am 10:57 AM

유니코드는 다양한 언어와 기호를 표현하는 데 사용되는 문자 인코딩 표준입니다. 유니코드 인코딩을 중국어 문자로 변환하려면 Python의 내장 함수 chr() 및 ord()를 사용할 수 있습니다.

Eclipse에서 한자 깨짐 문제를 해결하는 방법을 시도해 보세요. Eclipse에서 한자 깨짐 문제를 해결하는 방법을 시도해 보세요. Jan 03, 2024 pm 05:28 PM

Eclipse에서 중국어 문자가 깨져서 고민이신가요? 이러한 솔루션을 시도하려면 구체적인 코드 예제가 필요합니다. 1. 배경 소개 컴퓨터 기술이 지속적으로 발전함에 따라 소프트웨어 개발에서 중국어의 역할이 점점 더 중요해지고 있습니다. 그러나 많은 개발자는 중국어 개발에 Eclipse를 사용할 때 잘못된 코드 문제에 직면하여 작업 효율성에 영향을 미칩니다. 그런 다음 이 기사에서는 몇 가지 일반적인 잘못된 코드 문제를 소개하고 독자가 Eclipse에서 중국어 잘못된 코드 문제를 해결하는 데 도움이 되는 해당 솔루션과 코드 예제를 제공합니다. 2. 일반적인 잘못된 코드 문제 및 솔루션 파일

iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 Jul 29, 2023 am 08:22 AM

1부: 초기 문제 해결 단계 Apple 시스템 상태 확인: 복잡한 솔루션을 살펴보기 전에 기본 사항부터 시작해 보겠습니다. 문제는 귀하의 기기에 있는 것이 아닐 수도 있습니다. Apple 서버가 다운되었을 수도 있습니다. Apple의 시스템 상태 페이지를 방문하여 AppStore가 제대로 작동하는지 확인하세요. 문제가 있는 경우 Apple이 문제를 해결하기를 기다리는 것뿐입니다. 인터넷 연결 확인: "AppStore에 연결할 수 없음" 문제는 때때로 연결 불량으로 인해 발생할 수 있으므로 인터넷 연결이 안정적인지 확인하십시오. Wi-Fi와 모바일 데이터 간을 전환하거나 네트워크 설정을 재설정해 보세요(일반 > 재설정 > 네트워크 설정 재설정 > 설정). iOS 버전을 업데이트하세요.

PHP 튜토리얼: JSON 유니코드를 한자로 변환하는 방법 PHP 튜토리얼: JSON 유니코드를 한자로 변환하는 방법 Mar 05, 2024 pm 06:36 PM

JSON(JavaScriptObjectNotation)은 웹 애플리케이션 간의 데이터 교환에 일반적으로 사용되는 경량 데이터 교환 형식입니다. JSON 데이터를 처리할 때 유니코드로 인코딩된 중국어 문자(예: "u4e2du6587")를 자주 접하고 이를 읽을 수 있는 중국어 문자로 변환해야 합니다. PHP에서는 몇 가지 간단한 방법을 통해 이러한 변환을 수행할 수 있습니다. 다음으로 JSONUnico 변환 방법을 자세히 소개하겠습니다.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

See all articles