3種設定頁面編碼在實際效果中的優先順序

2021-05-28 11:42:24 字數 2009 閱讀 2219

3種設定頁面編碼在實際效果中的優先順序

一、頁面編碼

1. 使用 標籤設定頁面編碼

這個標籤的作用是宣告客戶端的瀏覽器用什麼字符集編碼顯示該頁面,***可以為gb2312,gbk,utf-8(和mysql不同,mysql是 utf8)等等。因此,大部分頁面可以採用這種方式來告訴瀏覽器顯示這個頁面的時候採用什麼編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管***是哪一種,瀏覽器採用的始終都是一種編碼,這個情況我後面會談到。

請注意,是屬於html資訊的,僅僅是乙個宣告,它起作用表明伺服器已經把html資訊傳到了瀏覽器。

2. header("content-type:text/html; charset=***");

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

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

https標頭是伺服器以http協議傳送html資訊到瀏覽器前所送出的字串。

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

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

3. adddefaultcharset

apache 根目錄的 conf 資料夾裡,有整個apache的配置文件httpd.conf。

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

如果網頁裡有header("content-type:text/html; charset=***"),就把預設的字符集改為你設定的字符集,所以這個函式永遠有用。如果把adddefaultcharset ***前面加個「#」,注釋掉這句,而且頁面裡不含header("content-type…"),那這個時候就輪到meta標籤起作用了。

總結:來個排序

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

adddefaultcharset ***  

如果你是web程式設計師,給你的每個頁面都加個header("content-type:text/html; charset=***"),保證它在任何伺服器都能正確顯示,可移植性強。

至於那句adddefaultcharset ***,要不要注釋就仁者見仁了。反正我是注釋掉了,不過我寫頁子也要寫header(),便於放到伺服器上能正常顯示。

二、資料庫編碼

php 程式在查詢資料庫之前,首先執行 mysql_query(「set names ***x」);其中 ***x 是你網頁的編碼(charset=***x),如果網頁中 charset=utf8,則 ***x=utf8,如果網頁中 charset=gb2312,則***x=gb2312,幾乎所有web程式,都有一段連線資料庫的公共**,放在乙個檔案裡,在這檔案裡,加入 mysql_query(「set names」)就可以了。

set names 顯示客戶端傳送的 sql 語句中使用什麼字符集。因此,set names 'utf-8'語句告訴伺服器「將來從這個客戶端傳來的資訊採用字符集utf-8」。它還為伺服器傳送回客戶端的結果指定了字符集。(例如,如果你使用乙個select語句,它表示列值使用了什麼字符集。)

在python3中的編碼

在python3中的編碼 author administrator date 2019 10 29 import sys print sys.getdefaultencoding utf 8 列印檔案的預設編碼 s ilike 特斯拉 s to gbk s.encode gbk encode 在編碼...

Web頁面中5種超酷的Hover效果分享

給平淡的站點帶來活力 hover效果能給網頁增加一些動態效果,並且使得站點更具有活力。原來的做法是使用j ascript來實現這些動態效果,但是隨著css3的引入和現代瀏覽器的支援,我們可以用純粹的css 來實現這些有趣的效果。所謂的現代瀏覽器,更多的是指以mozilla和webkit為核心的瀏覽器...

html中顏色的3種設定方式

1 color 顏色名 例 color yellow color red 用這種方式設定顏色的缺點就是顏色劃分不夠細緻。2 rgb 數值,數值,數值 例 rgb 0,0,0 rgb 220,220,220 我們都知道顏色都是由三原色 紅綠藍 組成的,通過三原色不同組合可以得到各種各樣的顏色,所以設定...