摘要:先看以下代碼互聯網產品我們以為會得到結果互聯網產品但實際上獲得的是互聯網產為什么呢其實這是編碼引起的問題這個函數在處理字符時是按照編碼來處理先看一下互聯網產品的編碼互聯網產品可以看出中文品的編碼是而中文符號的編碼是因此在處理時會一并將品
先看以下代碼
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://specialneedsforspecialkids.com/yun/31414.html
摘要:如何獲取受支持的算法清單,請參見。要進行哈希運算的消息。使用生成信息摘要時所使用的密鑰。設置為輸出原始二進制數據,設置為輸出小寫進制字符串。 介紹一下問題的背景: 本人一枚小小PHPer,有一天公司的Java找到我,讓我幫忙寫一個接口的Demo,心想:‘最喜歡寫接口了,來來來來!’,于是Java就帶著Java版Demo來了,大概看了一遍,具體涉及以下幾點:(不想了解的看最后一部分,就好...
摘要:如何獲取受支持的算法清單,請參見。要進行哈希運算的消息。使用生成信息摘要時所使用的密鑰。設置為輸出原始二進制數據,設置為輸出小寫進制字符串。 介紹一下問題的背景: 本人一枚小小PHPer,有一天公司的Java找到我,讓我幫忙寫一個接口的Demo,心想:‘最喜歡寫接口了,來來來來!’,于是Java就帶著Java版Demo來了,大概看了一遍,具體涉及以下幾點:(不想了解的看最后一部分,就好...
摘要:個人網站最近剛寫了一個手機在線播放的電影站使用日常手記更新使用的的查詢作用域的本地作用域去自定義可復用的約束集合,方便鏈式調用什么是本地查詢作用域本地作用域允許我們定義通用的約束集合以便在應用中復用。 關于作者 程序開發人員,不拘泥于語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud混合式開發。合適和夠用是最完美的追求。 個人網站:...
摘要:系列函數是用于去除字符串中首尾的空格或其他字符。此處要注意,左右兩邊是一對合法的范圍值,如果傳遞的是非法的值會報錯。本文主要對函數進行分析,和函數跟的類似。更多源碼文章源碼閱讀函數性能為王從源碼剖析和源碼閱讀和函數源碼閱讀和函數 trim系列函數是用于去除字符串中首尾的空格或其他字符。ltrim函數只去除掉字符串首部的字符,rtrim函數只去除字符串尾部的字符。 我在github有對P...
閱讀 3464·2021-11-18 10:02
閱讀 3707·2021-09-13 10:25
閱讀 1920·2021-07-26 23:38
閱讀 2568·2019-08-30 15:44
閱讀 2268·2019-08-30 13:51
閱讀 1223·2019-08-26 11:35
閱讀 2273·2019-08-26 10:29
閱讀 3444·2019-08-23 14:56