1. 程式人生 > >PHP 截取字符串後亂碼的解決方案

PHP 截取字符串後亂碼的解決方案

取字符串 pre HP .com 函數 分享 網上 編碼 方法

今天遇到一個坑,左右調試坑的我一臉懵逼,當我們對一條字符串進行截取的時候,通常第一個想到的就是substr()函數了,但是如果是中文+數字的字符串的話,這時候使用substr進行截取就會出現亂碼的問題,這是因為substr會把中文按照每個漢字三個字節進行截取,故而截取中文的時候並不適用,另外一個方法就是使用mb_substr()或者mb_strcut()函數進行截取,並設置截取後的編碼格式為‘utf-8‘,使用這兩個函數需要開啟php.ini中php_mbstring.dll擴展,將前面的;去掉然後重啟php-fpm,

$string = ‘下城區長浜路968號華盛達雷迪森廣場酒店‘;

我先使用了mb_substr()函數,但是並沒有解決我的問題,有的不亂碼,有的還是亂碼,也不知道網上那些說用這個函數就能解決的有沒有遇到這個問題- -!

echo mb_substr($string,0,40,‘utf-8‘);

技術分享圖片

最後我又用了mb_strcut()函數,它的用法和mb_substr()是一樣的,才算解決了這個問題:

mb_strcut($string,0,40,‘utf-8‘);

技術分享圖片

PHP 截取字符串後亂碼的解決方案