如果你的服務(wù)器讀不懂UTF16大頭,那就亂了。
如果你的服務(wù)器讀懂UTF16大頭,那么就有下一步:
這個(gè)是告訴(解析html)服務(wù)器 的模塊要用規(guī)定的東西輸出。
如果你的服務(wù)器讀不懂UTF16大頭,那就亂了。
如果你的服務(wù)器讀懂UTF16大頭,那么就有下一步:
這個(gè)是告訴(解析html)服務(wù)器 的模塊要用規(guī)定的東西輸出。
也就是說當(dāng)用戶請求的時(shí)候按UTF8編碼方式發(fā)送?
說錯(cuò)了,下面這說法應(yīng)該對的吧:
因?yàn)槟氵@些東西最終都要放在服務(wù)器上的。
是UTF16或UTF8都沒關(guān)系,關(guān)鍵是你服務(wù)器要讀的懂。
服務(wù)器發(fā)送:你發(fā)送什么都沒關(guān)系,關(guān)鍵是瀏覽器讀的懂。
瀏覽器就是一個(gè)HTML syntax解析器。按照HTML syntax的語法。(XML syntax)
這
Insert title here
安什么發(fā)送,服務(wù)器不是有個(gè)默認(rèn)值嗎?
在php中可這樣改
header(content-type:xx)
用戶只能說我發(fā)送的數(shù)據(jù)是用這種格式,我能接受的是這種格式,不能要求服務(wù)器,用什么格式返回的。
安什么發(fā)送,服務(wù)器不是有個(gè)默認(rèn)值嗎?
在php中可這樣改
header(content-type:xx)
用戶只能說我發(fā)送的數(shù)據(jù)是用這種格式,我能接受的是這種格式,不能要求服務(wù)器,用什么格式返回的。
大概明白了,東西放在服務(wù)器上,用什么格式保存無所謂,用戶瀏覽器也無法要求服務(wù)器按什么格式發(fā)送,但是用戶請求網(wǎng)頁的時(shí)候,瀏覽器會(huì)按文檔里明確給出的格式,比如UTF8發(fā)送給用戶,用戶端按UTF8解碼,這樣對吧?
不是,是給瀏覽器的HTML syntax解析器用的。解析成dom object. 也就是dom tree.
服務(wù)器用什么編碼發(fā)送,是需要在服務(wù)器配置哪里設(shè)置的。或用動(dòng)態(tài)語言設(shè)置(php .net .java)
不是,是給瀏覽器的HTML syntax解析器用的。解析成dom object. 也就是dom tree.
服務(wù)器用什么編碼發(fā)送,是需要在服務(wù)器配置哪里設(shè)置的?;蛴脛?dòng)態(tài)語言設(shè)置(php .net .java)
麻煩了你這么久,真不好意思。
不過,有一點(diǎn)我沒搞明白:
前提:我以【UTF16大頭】格式保存HTML,設(shè)置發(fā)送的格式是UTF8,里也是UTF8。
服務(wù)端:按照你說的,服務(wù)器能讀懂這個(gè)HTML,并且我們自己可以設(shè)置這個(gè)HTML的發(fā)送格式,就是UTF8。
#我的問題在這里#
客戶端瀏覽器:
假設(shè)1:用戶端瀏覽器在瀏覽HTML之前,不知道網(wǎng)頁編碼方式,所以肯定讀不出HTML的內(nèi)容,自然也就更不會(huì)知道里面是什么東西,所以就會(huì)亂碼;
假設(shè)2:用戶端瀏覽器通過解析HTML文檔前2個(gè)字節(jié),發(fā)現(xiàn)是EFBB,即UTF8格式,所以可以解析HTML文件,并讀取中的內(nèi)容,但是因?yàn)樵?meta>中的charset告訴瀏覽器是UTF8之前,瀏覽器已經(jīng)知道了編碼格式,所以這個(gè)charset信息多余了;
這無論是哪一種方式都說不通啊?
瀏覽器不知道HTML編碼方式,就不知道文檔內(nèi)容,不知道文檔內(nèi)容,就不知道m(xù)eta里寫的什么,不知道m(xù)eta里寫的什么,就不知道該用什么格式解碼。
瀏覽器如果要能知道HTML的編碼方式,要么直接解析文件,從文件前2個(gè)字節(jié)讀出EFBB,發(fā)現(xiàn)是UTF8編碼方式;要么服務(wù)器已經(jīng)把UTF8編碼方式告訴客戶端瀏覽器了,那還要里的charset干嘛?
我剛接觸HTML幾天,如果問題過于低級,請見諒。
你先搜下 binary text editor
我搜到http://www.editpadpro.com/hexadecimal.html 應(yīng)該可以用的。
注意text, 和 binary.
-》HTML是放在服務(wù)器上的,是要先經(jīng)過服務(wù)器讀的。
HTML 讓記事本 讓服務(wù)器讀 讀的是binary串 你說的頭是binary串的頭。這個(gè)頭他能讀懂,就開始按照他設(shè)置的轉(zhuǎn)換程序轉(zhuǎn)化了,變成我們能看懂的 text .
-》web服務(wù)器發(fā)送了.它也是先發(fā)送個(gè)頭,可通過web debug工具來看。
瀏覽器通過分析發(fā)過來的頭,分析到,后面來的是一段 html,確定用HTML syntax分析器對他處理。
-》HTML syntax分析器,他也有自己固定的語法。
你先搜下 binary text editor
我搜到http://www.editpadpro.com/hexadecimal.html 應(yīng)該可以用的。
注意text, 和 binary.
-》HTML是放在服務(wù)器上的,是要先經(jīng)過服務(wù)器讀的。
HTML 讓記事本 讓服務(wù)器讀 讀的是binary串 你說的頭是binary串的頭。這個(gè)頭他能讀懂,就開始按照他設(shè)置的轉(zhuǎn)換程序轉(zhuǎn)化了,變成我們能看懂的 text .
-》web服務(wù)器發(fā)送了.它也是先發(fā)送個(gè)頭,可通過web debug工具來看。
瀏覽器通過分析發(fā)過來的頭,分析到,后面來的是一段 html,確定用HTML syntax分析器對他處理。
-》HTML syntax分析器,他也有自己固定的語法。
謝謝這么耐心的答復(fù) :)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com