function str_utf8_validate( $s ) { $iByte = 0 ; $iCharLen = 0 ; $iLen = strlen( $s ); for( $i=0 ; $i<$iLen ; $i++ ) { $iByte = ord( $s[$i] ); if( $iByte < 128 ) continue ; if ( ( $iByte & 0xF0 ) == 0xF0 ) $iCharLen = 4 ; elseif( ( $iByte & 0xE0 ) == 0xE0 ) $iCharLen = 3 ; elseif( ( $iByte & 0xC0 ) == 0xC0 ) $iCharLen = 2 ; else return FALSE ; for( $j=1 ; $j<$iCharLen ; $j++ ) { if( ( ord($s[++$i]) & 0x80 ) != 0x80 ) { return FALSE ; } } } return TRUE ; }