91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用PHP怎么檢測字符串是否為UTF8編碼

發布時間:2021-01-11 16:35:21 來源:億速云 閱讀:305 作者:Leah 欄目:開發技術

利用PHP怎么檢測字符串是否為UTF8編碼?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

檢測字符串編碼可以有很多種方法,如利用ord獲得字符的進制然后進入判斷,或利用mb_detect_encoding函數來處理,下面整理了四種常用方法供大家參考。

例子1

復制代碼 代碼如下:

/**
* 檢測字符串是否為UTF8編碼
* @param string $str 被檢測的字符串
* @return boolean
*/
function is_utf8($str){
$len = strlen($str);
for($i = 0; $i < $len; $i++){
$c = ord($str[$i]);
if ($c > 128) {
if (($c > 247)) return false;
elseif ($c > 239) $bytes = 4;
elseif ($c > 223) $bytes = 3;
elseif ($c > 191) $bytes = 2;
else return false;
if (($i + $bytes) > $len) return false;
while ($bytes > 1) {
$i++;
$b = ord($str[$i]);
if ($b < 128 || $b > 191) return false;
$bytes--;
}
}
}
return true;
}


例子2

復制代碼 代碼如下:

function is_utf8($string) {
     return preg_match('%^(?:
             [\x09\x0A\x0D\x20-\x7E]                 # ASCII
         | [\xC2-\xDF][\x80-\xBF]                 # non-overlong 2-byte
         |     \xE0[\xA0-\xBF][\x80-\xBF]             # excluding overlongs
         | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}     # straight 3-byte
         |     \xED[\x80-\x9F][\x80-\xBF]             # excluding surrogates
         |     \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
         | [\xF1-\xF3][\x80-\xBF]{3}             # planes 4-15
         |     \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
     )*$%xs', $string);     
}


準確率基本和mb_detect_encoding()一樣,要對一起對,要錯一起錯。
編碼檢測不可能100%準確,這個東西已經可以基本滿足要求了。
例子3

復制代碼 代碼如下:

function mb_is_utf8($string)  
{  
    return mb_detect_encoding($string, 'UTF-8') === 'UTF-8';//新發現  
}

例子4

復制代碼 代碼如下:

// Returns true if $string is valid UTF-8 and false otherwise.  
function is_utf8($word)  
{  
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true)  
{  
return true;  
}  
else  
{  
return false;  
}  
} // function is_utf8

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潍坊市| 丽江市| 惠州市| 京山县| 边坝县| 沙雅县| 鹤壁市| 中阳县| 开原市| 涪陵区| 焦作市| 枣强县| 宁海县| 赫章县| 疏附县| 喀喇沁旗| 安溪县| 绥江县| 塘沽区| 长泰县| 湛江市| 寻甸| 安义县| 敦煌市| 石泉县| 佛冈县| 南召县| 东乡县| 尖扎县| 蒙自县| 大丰市| 湟源县| 田东县| 乐亭县| 阿瓦提县| 长寿区| 北辰区| 乐清市| 泸水县| 吉水县| 井研县|