首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 輸出亂碼終極解決:header() 編碼宣告與最佳實踐

     編輯:PHP 相關知識

亂碼成因

瀏覽器自動偵測編碼失敗,或頁面實際編碼與 HTTP 標頭宣告不一致(如檔案存為 UTF-8 但標頭送 Big5)。

立即生效方案

<?php
// 必須在任何輸出之前呼叫
header("Content-Type: text/html; charset=UTF-8");
  • charset 需與檔案儲存編碼一致(UTF-8 / Big5 / GBK)
  • 適用於 HTML 頁面、JSON API、XML 輸出等所有場景

進階:框架/專案層級統一管理

  • 入口檔案(index.php)統一設定
  • Nginx/Apache 設定 add_header Content-Type "text/html; charset=utf-8"; 或 AddDefaultCharset utf-8
  • 資料庫連線同步設定:SET NAMES utf8mb4
  • HTML5 簡寫:<meta charset="utf-8">(放在 <head> 首行)

常見坑點排查

  1. 檔案含 BOM(UTF-8 with BOM)導致 header() 失效 → 另存為「UTF-8 無 BOM」
  2. 前有空白/換行導致「Cannot modify header information」 → 確保 <?php 在第 1 行第 1 字元
  3. 多層 include 檔案編碼不一致 → 專案統一規範為 UTF-8
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved