2014-09-30 39 views
1

如果我編寫一個指定字符集的html元標記,如UTF-16那樣,我感覺有點雞和雞蛋問題 - 就像我們不知道UTF-16 data怎麼解碼整個HTTP請求?我相信請求標題需要處理這個問題,當我們嘗試讀取元數據,如說html標籤charset="utf-16"我們已經知道它的UTF-16。 除了請求頭部之類的標頭信息更高一級 - 以ASCII作爲標準傳遞?爲什麼需要指定編碼的元數據信息?

我的意思是在某種程度上我們需要達成一致,並且您無法設置解碼所需的數據作爲元數據信息。任何人都可以澄清這一點? 對於指定將原始數據中的整個數據解釋爲元數據信息所需的數據的想法,我有點困惑。

一般來說,如果我們沒有一個標準的語言/編碼協議來傳達關於數據本身的數據,任何形式的編碼都可以工作嗎?

例如,我被告知Apache默認有8859-1作爲標準。那麼,如果我們想要UTF-8content-type,那麼所有客戶端都需要對HTTP標頭執行該操作,並將實際內容解釋爲UTF-8

What character encoding should I use for a HTTP header?是密切相關的問題

回答

1

UTF-16(和其他)編碼使用是在文件的開始和正在使用的信號編碼,其讀出的BOM (Byte Order Mark)。只有在此之後,文件的編碼部分纔會開始。

例如,對於UTF-16,如果使用big-endian,則將使用字節FE FF,如果使用little-endian字,則使用FF FE

您也經常看到UTF-8 BOM,儘管它們不需要使用(並且可能會混淆某些XML解析器)。

+0

那麼現在的標準是什麼?我的意思是瀏覽器和apache是​​否同意使用UTF-8來處理這些日子的任何事情,或者它是否繼續使用8859-1,然而如果將真實內容設置爲UTF-8或甚至將它們編碼爲UTF-8作爲默認? – Nishant 2014-09-30 12:40:37

+1

@Nishant:UTF-8是一種單字節編碼,它將ASCII作爲子集,因此聲明編碼的行實際上是ASCII。將文件保存爲UTF-8,並確保在開始時聲明編碼。 – 2014-09-30 12:42:13

+0

當你說文件是你的意思?現在很難使用靜態HTML。所有我們處理智慧動態的權利?爲了讓文件瀏覽器必須先製作一個請求,我認爲這是根據Web服務器配置進行的拉丁文 - 我認爲它具有瀏覽器遵守的標準 - 否則某些瀏覽器可能無法打開某些網站。你能否澄清 - 如果你可以回答作爲原始答案的一部分,這也是有幫助的,因爲那是我的問題之一。 – Nishant 2014-09-30 12:59:54

相關問題