PHP 擷取字串亂碼的解決方案

2022-08-18 19:54:14 字數 521 閱讀 1559

當對一條字串進行擷取的時候,通常第乙個想到的就是substr()函式了,但是它只針對英文本元,如果是中文字串的話,

這時候使用substr進行擷取就會出現亂碼的問題,這是因為substr會把中文按照每個漢字三個位元組進行擷取,故而擷取中文的時候並不適用,

此時可以使用mb_substr()或者mb_strcut()函式進行擷取,並設定擷取後的編碼格式為'utf-8',使用這兩個函式需要開啟php.ini中php_mbstring.dll擴充套件,將前面的;去掉然後重啟php-fpm,

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

echo mb_substr($string,0,13,'utf-8'); //每乙個中文當成乙個字元

echo "\n";

echo mb_strcut($string,0,13,'utf-8'); //按位元組數來執行,而不是字元個數,乙個中文三個位元組

得到的結果:

下城區長浜路968號華盛達

下城區長

PHP 解決 php 擷取字串中文亂碼問題

有時候我們需要擷取一些中英文混雜的字串,比如要顯示新聞的標題,如果標題過長,我們就擷取前面的15個字,後面用.顯示 用 php 的 substr 來擷取的話,有時候就會出現亂碼現象,因為 substr 是擷取英文本串的,如果偏巧第 15 個字元為漢字的話,那末就相當於把乙個漢字給切為2半了,那這時肯...

php擷取字串,出現亂碼

在資料庫中得到的字段太長了,不好直接在頁面顯示,所以我使用了一些擷取字串的方法。一在php manual中找到了substr方法,開始還挺驚喜。發現擷取中文的時候在字串的末尾出現亂碼。我用這個 方法擷取的是gb2312的中文字串,比如,我的字串 發現擷取中文的 substr 發現擷取中文的 0,4 ...

php擷取字串,避免亂碼

1.擷取gb2312中文字串 擷取中文字串 function mysubstr str,start,len else tmpstr substr str,i,1 return tmpstr 2.擷取utf8編碼的多位元組字串 擷取utf8字串 function utf8substr str,from...