rtrim php,php rtrim() 格式化中文问题
生活随笔
收集整理的這篇文章主要介紹了
rtrim php,php rtrim() 格式化中文问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先看以下代碼
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", 從而引起亂碼的問題.
總結
以上是生活随笔為你收集整理的rtrim php,php rtrim() 格式化中文问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星s2 硬刷Android 8,三星T
- 下一篇: 自学计算机软件及应用,[计算机软件及应用