note 39986 added to function.utf8-encode

From: Date: Tue, 17 Feb 2004 18:22:01 +0000
Subject: note 39986 added to function.utf8-encode
Groups: php.notes 
Request: Send a blank email to php-notes+get-65314@lists.php.net to get a copy of this message
Here is an improved version of that function, compatible with 31-bit encoding scheme of Unicode 3.x : <?php function seems_utf8($Str) { for ($i=0; $i<strlen($Str); $i++) { if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b else return false; # Does not match any model for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ? if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80)) return false; } } return true; } ?> ---- Manual Page -- http://www.php.net/manual/en/function.utf8-encode.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+39986 Delete -- http://master.php.net/manage/user-notes.php?action=delete+39986&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+39986&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#65314) next »