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

php中uft-8中文編碼亂碼怎麼辦?

coldplay.xixi
coldplay.xixi原創
2020-07-21 11:12:552849瀏覽

php中uft-8中文編碼亂碼的解決方法:先在程式碼開始處加入一行相關程式碼;然後依序點選【檔案-另存為】,確保檔案編碼為【UTF-8】;最後php頁面刪除BOM標籤即可。

php中uft-8中文編碼亂碼怎麼辦?

php中uft-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");

利用程式來實例字元截取方法

function utf8_substr($str,$len) 
{ 
  for($i=0;$i<$len;$i++) 
  { 
    $temp_str=substr($str,0,1); 
    if(ord($temp_str) > 127){ 
      $i++; 
    if($i<$len){ 
      $new_str[]=substr($str,0,3); 
      $str=substr($str,3); 
      } 
    }else { 
    $new_str[]=substr($str,0,1); 
    $str=substr($str,1); 
    } 
  } 
  return join($new_str); 
}

相關學習推薦:PHP程式設計從入門到精通

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn