html1

1.網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎樣解決?

當(dāng)一個網(wǎng)頁出現(xiàn)在你面前的時候,它已經(jīng)經(jīng)歷了一個寫入到展示的過程:

1.使用編輯器編寫HTML文件

2.保存編寫的HTML文件

3.使用瀏覽器打開HTML文件

4.HTML文件在瀏覽器展示

在編輯一份代碼的時候,會用一個文件來存儲這份代碼,這就是編碼方式。這種編碼計算機可讀而人類不可讀。例如:在網(wǎng)頁中我們看到這樣一句話:<meta charset ="utf-8"/>,這里的“utf-8”

就是一種編碼方式,這個又是什么意思呢,下面我們來認(rèn)識幾種:

認(rèn)識幾種編碼方式

ASCII

全稱美國標(biāo)準(zhǔn)信息交換代碼(American Standard Code for Information Interchange)的縮寫,

為美國英語通信所設(shè)計。它由128個字符組成,包括大小寫字母、數(shù)字0-9、標(biāo)點符號、非打印字符(換行符、制表符等4個)以及控制字符(退格、響鈴等)

組成,每個字符占7位(1字節(jié)是8位)。

ISOLatin-1

可以認(rèn)為ASCII是美國發(fā)明針對英語設(shè)計的,但歐洲人在用的時候出現(xiàn)了問題。對于一些特殊的拉丁字符,比如法文德文里某些字符,ASCII字符集

就不包括。于是歐洲人發(fā)明了一種8位字符集是ISO 8859-1Latin

1,也簡稱為ISOLatin-1。它對ASCII做了個擴充,對于0-127之間的字符還使用ASCII里的字符不變,

把位于128-255之間的字符表示拉丁字母表中特殊語言字符。

UNICODE

后來計算機不斷發(fā)展擴展到亞洲非洲,如何用計算機使用的二進(jìn)制表示這些語言又成了問題。ISOLatin-1的8位字符集只能表示256個字符,而僅漢語就有80000以上個字符。如何把地球上絕大多數(shù)語言用一種編碼方式表示出來呢? 于是發(fā)明了UNICODE編碼,只用2個字節(jié)(16位)就可以編碼地球上幾乎所有地區(qū)的文字。

但是,UNICODE只是理論上的編碼方式,相當(dāng)于給世界上每個文字打了個編號,但這編號具體如何在計算機里面存儲,可以有多種實現(xiàn)方式。比如utf-8和gbk。

前面說了UNICODE只是給每個文字打了個編號,為啥不把這個編號直接轉(zhuǎn)化成二進(jìn)制存儲在計算機里面呢? 比如英文字母s的編號是115, 用二進(jìn)制表示是00000000 1110011, 中文日的編號是26085 (16進(jìn)制是65e5) ,二進(jìn)制是11001011 1100101。老外才沒那么傻,對于老外這種日常純粹是用英文字符的人來說明明之前1個字節(jié)就能存儲一個字母,現(xiàn)在為了全球大一統(tǒng)非要存儲為2個字節(jié),相當(dāng)于一個之前一個1M的文檔,現(xiàn)在變?yōu)?M。于是老外耍了賴,英文字母s是115沒錯,但我就用1個字節(jié)1110011表示,而你中文日是26085號也沒錯,但是你不能在使用2個表示,而是用2個甚至6個字節(jié)表示。(為了英文的特權(quán),犧牲其他語言的存儲空間的便利),這個編碼方式就是UTF-8。

UTF-8

utf-8(8-bit Unicode Transformation

Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。UTF-8用1到6個字節(jié)編碼UNICODE字符。用在網(wǎng)頁上可以同一頁面顯示

中文簡體繁體及其它語言(如英文,日文,韓文)。

那GBK又是如何產(chǎn)生的呢?

GBK

這時候中國不干了,為啥你制定了全球大一統(tǒng)的規(guī)則,卻為了自己的便利又破壞規(guī)則,把方便留給自己不便留給別人呢?

明明用2個字節(jié)就能表示中文一個漢字,現(xiàn)在UTF-8編碼中文竟然需要2個甚至4個字節(jié)來表示。于是中國制定一套自己的規(guī)則,于是用2個字節(jié)來表示一個漢

字,總共可以覆蓋2萬多個文字。 對于英文,好吧讓一步,還保留和你UTF-8同樣的方式使用一個字節(jié)來表示。

記住:UNICODE只是給字符一個代號,而GBK和UTF-8使用不同的規(guī)則來表示同一個代號。

以上,就是關(guān)于幾種編碼方式的知識?? (引用于饑人谷若愚老師)

編碼的存儲需要 編碼方式 來轉(zhuǎn)化,網(wǎng)頁內(nèi)容展示也需要編碼方式的轉(zhuǎn)化。所以,網(wǎng)頁亂碼的產(chǎn)生一般就是因為編碼不一致產(chǎn)生的,比如:比如:html表單默認(rèn)編碼方式是“gbk”,然后瀏覽器默認(rèn)的是“utf-8”,即如果當(dāng)前頁面的顯示編碼和獲取到的值的編碼不一致的話就會產(chǎn)生亂碼。這只是其中一種情況,一個網(wǎng)頁要正常顯示涉及多處編碼問題。

1模板頭部編碼

模板源代碼中所指定的編碼

2模板自身編碼

是模板保存到磁盤的編碼,許多站長不知道這個編碼。以UE為例,在保存文件時會提示選擇編碼,具體到AKCMS,通過AKCMS后臺保存的模板會使用和AKCMS配置(/configs/configs.inc.php)一樣的編碼設(shè)置

3數(shù)據(jù)編碼

數(shù)據(jù)可能是數(shù)據(jù)庫也可能是緩存文件或讀取URL的內(nèi)容,最常見的數(shù)據(jù)源是數(shù)據(jù)庫。

以上編碼必須統(tǒng)一,才能正常顯式,否則頁面的部分或全部就會出現(xiàn)亂碼。

遇到網(wǎng)頁亂碼第一步是先分析問題,先定位了問題才能有針對的快速解決,否則浪費時間也沒有效果:


2.顏色有幾種寫法, 紅色、 綠色、藍(lán)色、白色、黑色如何表示? 透明黑色如何表示?#ccc的顏色,#eee的顏色?#333的顏色?

顏色有三種表示方式,分別為十六進(jìn)制,RGB代碼,預(yù)定義的顏色值

十六進(jìn)制的代碼表示。如bgcolor=#ff0000;其中#只是表示使用6位16進(jìn)制的顏色代碼聲明顏色。代碼的頭兩位即ff表示三原色中的紅色,范圍當(dāng)然是16進(jìn)制的00-ff,中間兩位即00表示綠色,最后兩位即00表示藍(lán)色,00表示沒有顏色,ff表示顏色最強。所以000000表示黑色,ffffff表示白色,同樣ff0000表示純紅色,00ff00表示純綠色,0000ff表示純藍(lán)色。實際工作中,十六進(jìn)制是最常用的定義顏色的方式。

RGB代碼:顏色還可以用rgb(r,g,b)表示,括號中的r,g,b分別用0-255的十進(jìn)制數(shù)或百分比表示紅綠藍(lán),例如rgb(255,0,0)以及rgb(100%,0%,0%)都表示紅色。

預(yù)定義的顏色值:顏色的表示還可以用顏色的關(guān)鍵字表示,共16個。

RGBA模式:CSS3顏色值透明表示方式

R:紅色值。正整數(shù) | 百分?jǐn)?shù)

G:綠色值。正整數(shù) | 百分?jǐn)?shù)

B:藍(lán)色值。正整數(shù) | 百分?jǐn)?shù)

A:Alpha透明度。取值0~1之間。

透明黑色 rgb(0,0,0,0.5)

Black 黑色 #000000? rgb(0,0,0,)

Green 綠色 #008000? ? rgb(255,180,0,)

Red 紅色? #FF0000? rgb(255,0,0,)

Blue 藍(lán)色 #0000FF? rgb(0,0,255,)

White 白色 #FFFFFF? rgb(255,255,255,)


(http://www.sioe.cn/yingyong/yanse-rgb-16/


3.<!doctype html>的作用是什么?

作用:文檔聲明,對文檔進(jìn)行解析,以HTML標(biāo)準(zhǔn)對頁面進(jìn)行渲染。瀏覽器根據(jù)文件后綴進(jìn)行解析,根據(jù)文檔規(guī)則對文檔進(jìn)行不同的編輯。

4.嚴(yán)格模式和混雜模式指什么?

嚴(yán)格模式指加了文檔聲明,混雜模式即未加文檔聲明

5.meta 有什么作用,常見的值有哪些?

meta標(biāo)簽共有兩個屬性,它們分別是http-equiv屬性和name屬性,不同的屬性又有不同的參數(shù)值,這些不同的參數(shù)值就實現(xiàn)了不同的網(wǎng)頁功能。

name的屬性值又分為三種情況:

(1)設(shè)置網(wǎng)頁關(guān)鍵字

name屬性的 值為keywords,用于定義搜索內(nèi)容,即網(wǎng)頁關(guān)鍵字,content屬性 的值用于定義具體內(nèi)容:多個關(guān)鍵字內(nèi)容之間用“,”隔開。

(2)設(shè)置網(wǎng)頁描述

name屬性值為description,用于定義搜索內(nèi)容名稱為網(wǎng)頁描述,content屬性的值用于定義描述的具體的內(nèi)容。

(3)設(shè)置網(wǎng)頁作者

name屬性值為autor,用于定義搜索內(nèi)容名稱為網(wǎng)絡(luò)作者


http-equiv分為以下幾種情況:

(1)設(shè)置字符集

<meta http-equiv ="名稱" content="值"/>

http-equiv屬性值為content-type,content屬性值為text/html ,charset ="utf-8",用于說明當(dāng)前文檔類型為html。字符集為utf-8.

(2)設(shè)置頁面自動刷新與跳轉(zhuǎn)

<meta http-equiv ="refresh" content ="10">,用于指定在特定的時間后跳轉(zhuǎn)至目標(biāo)頁面,content值默認(rèn)以秒為單位。

總結(jié)一下,就是在<meta>標(biāo)記中使用http-equiv/content屬性可以設(shè)置服務(wù)器發(fā)送給 瀏覽器的http頭部信息,為瀏覽器顯示該頁面提供相關(guān)的參數(shù),其中http-equiv屬性提供參數(shù)類型,content屬性提供對應(yīng)的參數(shù)值。


6.<meta http-equiv =”X-UA-Compatible”content="IE=edge,chrome=1">有什么作用?

其中http-equiv=”X-UA-Compatible”這個是IE8的專用標(biāo)記,是用來指定Internet Explorer 8 瀏覽器模擬某個特定版本IE瀏覽器的渲染方式,以此來解決IE瀏覽器的兼容問題。

后面一句則是讓網(wǎng)頁優(yōu)先采用chrome進(jìn)行渲染


7.常見的瀏覽器有哪些,什么內(nèi)核?


常見的瀏覽器及內(nèi)核如下:

常見的有IE瀏覽器,使用Trident

Safari瀏覽器,使用WebKit內(nèi)核,它是蘋果公司自己的內(nèi)核,也是蘋果的Safari瀏覽器使用的內(nèi)核。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟件,在GPL條約下授權(quán),同時支持BSD系統(tǒng)的開發(fā)。所以Webkit也是自由軟件,同時開放源代碼。Google Chrome、360極速瀏覽器以及搜狗瀏覽器高速模式也使用webkit作為內(nèi)核。

FireFoxl瀏覽器,使用 Gecko 內(nèi)核,Gecko的特點是代碼完全公開,因此,其可開發(fā)程度很高,全世界的程序員都可以為其編寫代碼,增加功能。因為這是個開源內(nèi)核,因此受到許多人的青睞

Opera瀏覽器,使用Presto內(nèi)核,這是目前公認(rèn)網(wǎng)頁瀏覽速度最快的瀏覽器內(nèi)核。link是一個由Google和Opera Software開發(fā)的瀏覽器排版引擎,這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用。




本教程版權(quán)歸饑人谷_LULU和饑人谷所有,轉(zhuǎn)載須說明來源

























最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎樣解決 首先我們要知道 UNICODE 和 UTF-8 的概念 Unicode...
    饑人谷_沈夢圓閱讀 539評論 0 0
  • 1.網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎么解決? 一:亂碼產(chǎn)生的原因是:當(dāng)我們保存文件時會把我們寫入的文字使用編輯器默認(rèn)...
    freddy閱讀 635評論 0 0
  • 一、網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎樣解決? 知識拓展~幾種編碼方式的認(rèn)識 ASCIIAmerican Standa...
    dengpan閱讀 525評論 0 0
  • 一.網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎樣解決 亂碼產(chǎn)生的根本原因就是我們在保存文件時的編碼格式和用瀏覽器解析文件時的解...
    婷樓沐熙閱讀 985評論 0 0
  • 1.網(wǎng)頁亂碼的問題是如何產(chǎn)生的?怎樣解決 先認(rèn)識認(rèn)識幾種編碼方式 ASCII 全稱美國標(biāo)準(zhǔn)信息交換代碼(Ameri...
    饑人谷_任磊閱讀 529評論 0 0

友情鏈接更多精彩內(nèi)容