Heim >Backend-Entwicklung >PHP-Tutorial >PHP utf-8 Chinesisches Abfangen ohne verstümmelte Zeichen (String-Urteil-Version)

PHP utf-8 Chinesisches Abfangen ohne verstümmelte Zeichen (String-Urteil-Version)

WBOY
WBOYOriginal
2016-08-08 09:30:331097Durchsuche
/*E4 B8 AD E5 9B BD   中国
1110 0100    10111000   10101101
1110 0101    1001101110111101

61  a
0011 1101


0xxx xxxx ,1个字节
110xx xxxx , 2个字节
1110 xxxx, 3
1111 0xxxx 4...
*/<pre name="code" class="php">$str = '中华人aaa民共b和国,c万岁';

function utf8sub($str,$len){
	if($len <=0) return &#39;&#39;;
	$length = strlen($str);
	$offset=0;
	$chars=0;
	$res=&#39;&#39;;
	while($chars<$len && $offset<$length){
		$heigh = decbin(ord(substr($str, $offset,1)));
		echo $heigh ,&#39;</br>';
		if(strlen($heigh)<8){
			$count=1;
		}else if(substr($heigh,0,3) == '110'){
			$count=2;
		}else if(substr($heigh,0,4) == '1110'){
			$count=3;
		}else if(substr($heigh,0,5) == '11110'){
			$count=4;
		}else if(substr($heigh,0,6) == '111110'){
			$count=5;
		}else if(substr($heigh,0,7) == '1111110'){
			$count=6;
		}
		$res .= substr($str, $offset,$count);
		$chars += 1;
		$offset += $count;
	}
	return $res;
}

echo utf8sub($str,10);




Das Obige stellt das chinesische Abfangen von PHP utf-8 ohne verstümmelte Zeichen vor (String-Urteil-Version), einschließlich Aspekten des Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die an PHP-Tutorials interessiert sind.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn