var_dump(rtrim("互聯網產品、", "、"));
我們以為會得到結果 "互聯網產品", 但實際上獲得的是 ""互聯網產??"
rtrim() 這個函數在處理字符時是按照ascii編碼來處理, 先看一下 "互聯網產品、" 的編碼:
$str = "互聯網產品、"; for ($i = 0; $i < strlen($str); $i++) { echo decbin(ord($str[$i])) . PHP_EOL; } /* Output 11100100 10111010 10010010 11101000 10000001 10010100 11100111 10111101 10010001 11100100 10111010 10100111 11100101 10010011 10000001 11100011 10000000 10000001 */
可以看出中文"品"的utf-8編碼是 "11100101 10010011 10000001", 而中文符號 "、" 的utf-8編碼是 "11100011 10000000 10000001"
因此 rtrim() 在處理時會一并將 "品" 截掉最后一個字節, 剩下 "11100101 10010011", 從而引起亂碼的問題.
掃碼二維碼 獲取免費視頻學習資料
- 本文固定鏈接: http://www.wangchenghua.com/post/7367/
- 轉載請注明:轉載必須在正文中標注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料
查 看2022高級編程視頻教程免費獲取