php 의 유 니 코드 와 utf 8 인 코딩 에 대해 간단히 이야기 합 니 다.
오늘 에 이 르 러 서 야 정확히 말 하면 방금 전에 나 는 UTF-8 인 코딩 과 유 니 코드 인 코딩 이 다 르 고 차이 가 있다 는 것 을 알 게 되 었 다.
그들 사이 에는 일정한 관계 가 있다.그들의 차 이 를 보 자.
UTF-8 길이 가 일정 하지 않 아 1,2,3 바이트 일 수 있 습 니 다.
유 니 코드 길이 일정,2 바이트(USC-2)
UTF-8 은 유 니 코드 와 서로 변환 할 수 있 습 니 다.
유 니 코드 와 utf 8 의 관계
유 니 코드(16 진수)
UTF-8(바 이 너 리)
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
위의 표 는 두 가지 의미 가 있 는데 첫 번 째 는 유 니 코드 와 UTF-8 문자 범위 의 대응 을 알 수 있 고 유 니 코드 가 UTF-8 과 어떻게 서로 전환 하 는 지 알 수 있다.
UTF-8 에서 유 니 코드 로 의 전환 을 먼저 말씀 드 리 겠 습 니 다.
UTF-8 인 코딩 의 바 이 너 리 는 위의 3 가지 형식 과 일치 합 니 다.일치 한 후에 고정 비트(표 의 비 x 위치)를 제거 한 다음 에 오른쪽 에서 왼쪽 까지 8 개 씩 한 그룹 씩 8 개 미 만 의 왼쪽 을 받 지 않 고 2 개의 바이트 16 bits 를 채 웁 니 다.이 16 bits 는 UTF-8 에 대응 하 는 유 니 코드 인 코딩 을 표시 합 니 다.다음 과 같은 몇 가지 예 를 보 세 요.
위 그림 의 문자 인 코딩 형식 은 UTF-8 이 며,WinHex 로 16 진수 로 표시 할 수 있 습 니 다.
=> 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
유 니 코드 에서 UTF-8 로 의 전환 을 살 펴 보 겠 습 니 다.
5B57
5B57 Unicode ,0800 <= 5B57 <= FFFF, 5B57 UTF-8 , 1110xxxx 10xxxxxx 10xxxxxx
5B57 101101101010111
UTF-8 11100101 10101101 10010111
문 제 를 말 하 다그리고 오늘 이 문제 의 원인 은 전단 에서 많은 단 어 를 입력 하고 UTF-8 형식 은 단어 당 최대 30 바이트 이기 때문에 전단 과 배경 에서 각각 검증 합 니 다.자바 script 은 유 니 코드 인 코딩 을 사용 하고 백 엔 드 프로그램 은 UTF-8 인 코딩 을 사용 합 니 다.현재 의 해결 방법 은 이 렇 습 니 다.
전단
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
백 스테이지
# GBK
$len = ceil(strlen(bin2hex(iconv('GBK', 'UTF-8', $word)))/2);
# UTF8
$len = ceil(strlen(bin2hex($word))/2);
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.