首頁 >後端開發 >PHP問題 >php中header怎麼設定編碼

php中header怎麼設定編碼

藏色散人
藏色散人原創
2021-09-14 10:09:212648瀏覽

php中header設定編碼的方法:1、開啟對應的PHP檔案;2、透過「header("content-type:text/html; charset=xxx");」語法設定編碼即可。

php中header怎麼設定編碼

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

php中header怎麼設定編碼?

header("content-type:text/html; charset=xxx");

這個函數header()的作用是把括號裡面的資訊發到http標頭。

如果括號裡面的內容為文中所說那樣,那作用和3f2ae36b77c0b1762e465ca019e7bd30標籤基本上相同,大家對照第一個看發現字符都差不多的。但不同的是如果有這段 函數,瀏覽器就會永遠採用你所要求的xxx編碼,絕對不會不聽話,因此這個函數是很有用的。為什麼會這樣呢?那就得說說HTTPS標頭和HTML資訊的差異 別了:

https標頭是伺服器以HTTP協定傳送HTML資訊到瀏覽器前所送出的字串。

因為meta標籤是屬於html資訊的,所以header()發送的內容先到達瀏覽器,通俗點就是header()的優先權高於meta(不知道可 不行)。加入一個php頁面既有header("content-type:text/html; charset=xxx"),又有1dd9d9bc813bb1594796bd2b8615c022 ,瀏覽器就只認前者http標頭而不認meta了。當然這個函數只能在php頁面內使用。

同樣也留有一個問題,為什麼前者就絕對起作用,而後者有時候就不行呢?這就是接下來要談的Apache的原因了。

AddDefaultCharset

Apache 根目錄的 conf 資料夾裡,有整個Apache的設定文件httpd.conf。

用文字編輯器開啟httpd.conf,第708行(不同版本可能不同)有AddDefaultCharset xxx,xxx為編碼名稱。這行程式碼的意思:設定整個伺服器內的網頁檔案https標頭裡的字元集為你預設的xxx字元集。有這行,就相當於給每個檔案都 加了一行header("content-type:text/html; charset=xxx")。這就明白為什麼明明meta設定了是utf-8,可瀏覽器總是採用gb2312的原因。

如果網頁裡有header("content-type:text/html; charset=xxx"),就把預設的字元集改為你設定的字元集,所以這個函數永遠有用。如果把AddDefaultCharset xxx前面加個“#”,註解掉這句,而且頁面裡不含header("content-type…"),那這個時候就輪到meta標籤起作用了。

推薦學習:《PHP影片教學

以上是php中header怎麼設定編碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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