首頁 > 後端開發 > PHP問題 > php轉utf-8中文亂碼怎麼辦

php轉utf-8中文亂碼怎麼辦

藏色散人
發布: 2023-03-17 20:52:02
原創
3461 人瀏覽過

php轉utf-8中文亂碼的解決方法:1、在程式碼開始處加入「header("Content-Type: text/html;charset=utf-8");」;2、將文件另存為「UTF-8」;3、刪除BOM標籤即可。

php轉utf-8中文亂碼怎麼辦

本教學操作環境:Windows10系統、PHP8.1版、DELL G3電腦

php轉utf-8中文亂碼怎麼辦?

PHP頁轉UTF-8編碼問題 

1.在程式碼開始出加入一行: 

header("Content-Type: text/html;charset=utf-8");
登入後複製

2. PHP檔案編碼問題

點擊編輯器的選單:“檔案”->“另存為”,可以看到目前檔案的編碼,確保檔案編碼為:UTF-8, 

如果是ANSI,需要將編碼改成:UTF-8。

3.PHP檔案頭BOM問題: 

PHP檔案一定不可以有BOM標籤 

否則,會出現session不能使用的情況,並且有類似的提示:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 

這是因為,在執行session_start() 的時候,整個頁面不能有輸出,但是當由於前PHP頁面存在BOM標籤, 

PHP把這個BOM標籤當成是輸出了,所以就出錯了!

所以PHP頁面一定要刪除BOM標籤 

刪除這個BOM標籤的方法: 

1.可以用Dreamweaver開啟文件,並重新儲存,也就是可以移除BOM標籤!

2.可以用EditPlus開啟文件,並在選單「偏好設定」->「檔案」->"UTF-8標誌",設定為:「總是刪除簽章」, 

然後儲存文件,即可以移除BOM標籤!

4.PHP以附件形式儲存檔案的時候,UTF-8編碼問題: 

PHP以附件形式儲存文件,檔案名稱必須是GB2312編碼, 

#否則,如果檔案名稱中有中文的話,將是顯示亂碼: 

如果你的PHP本身是UTF-8編碼格式的文件, 

#需要將檔案名稱變數由UTF-8轉成GB2312: 

iconv("UTF-8", "GB2312", "$filename");
登入後複製

5.截斷顯示文章標題時,出現亂碼或「?」問號的問題: 

一般文章標題很長的時候,會顯示一部分標題,會對文章標題進行截斷, 

由於一個UTF-8編碼格式的中文字符會佔用3個字符寬度, 

截取標題的時候,有時會只截斷到一個中文字符的1個字符或2字元寬度, 

沒截取完整,將出現亂碼或「?」問號的情況, 

用下面的函數截取標題,就不會有問題:

function get_brief_str($str, $max_length) 
{ 
echo strlen($str) ."<br>"; 
if(strlen($str) > $max_length) 
{ 
$check_num = 0; 
for($i=0; $i < $max_length; $i++) 
{ 
if (ord($str[$i]) > 128) 
$check_num++; 
} 
if($check_num % 3 == 0) 
$str = substr($str, 0, $max_length)."..."; 
else if($check_num % 3 == 1) 
$str = substr($str, 0, $max_length + 2)."..."; 
else if($check_num % 3 == 2) 
$str = substr($str, 0, $max_length + 1)."..."; 
} 
return $str; 
}
登入後複製

推薦學習:《PHP影片教學

以上是php轉utf-8中文亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板