[英]Facebook charset detection mechanism?
今天,我查看了facebook.com的HTML代碼,發現了類似這樣的內容:
<input type="hidden" value="€,´,€,´,水,Д,Є" name="charset_test"/>
它在<form>...</form>
重復了兩次。
知道這段代碼可能有用 - 某種服務器端客戶端字符集檢測? 據我所知,瀏覽器字符集無論如何都是在HTTP請求中傳輸的(“Accept-Charset”標題)。
知道這段代碼可能有用 - 某種服務器端客戶端字符集檢測?
顯然是這樣。
歐元符號對於字符集檢測很有用,因為有很多編碼方式:
據我所知,瀏覽器字符集無論如何都是在HTTP請求中傳輸的(“Accept-Charset”標題)。
它應該在HTTP Content-Type
標頭中傳輸,但這並不意味着用戶代理實際上是正確的。
我猜他們在接收腳本中匹配這一點,以確保客戶端發送的請求正確編碼為UTF-8,甚至可能因為他們知道期望的字符,即可實時檢測實際編碼。
如果我沒記錯的話 - 我必須處理一次 - 在某些情況下IE6中的表單編碼存在問題。
€,´,€,´,水,Д,Є
我猜有些瀏覽器發送€
與€
和´
相同´
與´
相同,
所以他們可以檢查像charset_test [0] == charset_test [2]和charset_test [1] == charset_test [3]
對於其他角色,我不知道。 水可能測試CJK。
正如Pekka所說,這是為了能夠檢測到請求字符集。 HTTP協議不提供指定請求的字符集的方法。 因此,必須依賴協議之外的約定。 通常瀏覽器是可預測的,但這個技巧是100%確定的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.