解決php擷取中文字元出現問號亂碼問題

2021-10-03 18:09:50 字數 502 閱讀 2955

在資料庫中獲取到了新聞標題,使用php擷取一部分,出現問號亂碼。

原來的**是:

<?php 

$res['art_title'] ='選擇好的空投糖果**難嗎?';

echo substr($res['art_title'],0,20);

?>

了解到substr() 擷取中文字元會亂碼,於是修改為 mb_substr()

<?php 

$res['art_title'] ='選擇好的空投糖果**難嗎?';

echo mb_substr($res['art_title'],0,20);

?>

在本地測試一度正常,後面換了伺服器,上線之後,又出現亂碼了

查詢說是因為網頁檔案與資料庫編碼不一致

天知道為什麼不一致

我明明記得資料庫和頁面檔案我都是設定的 utf8 來著

雖然不懂什麼邏輯,但是也找到了解決方法,mb_substr() 最後乙個引數再加上編碼就行。

mysql擷取中文字元 mysql 擷取中文字元

1 char n 型別 char型別時定長的型別,即當定義的是char 10 輸入的是 abc 這三個字元時,它們佔的空間一樣是10個位元組,包括7個空位元組。當輸入的字元長度超過指定的數時,char會擷取超出的字元。而且,當儲存char值時,mysql是自動刪除輸入字串末尾的空格。char是適合儲...

PHP函式substr 擷取中文字元亂碼

substr 函式在擷取字串時是按位元組來擷取的,在gbk gb2312編碼下,乙個中文佔2個位元組 utf 8 unicode編碼下,乙個中文佔3個位元組。text 竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。echo text n 竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。echo strlen text...

python中文字元擷取亂碼

python學習中 python中關於中文字串擷取的問題 中文字元擷取亂碼 在python中乙個中文字元佔三個英文本元,看以下 print str 0 6 擷取啤酒兩個中文字元,需要從0開始截到6 print str 0 5 輸出 啤酒啤 就會出現亂碼 usr bin python coding u...