看板 Browsers 關於我們 聯絡資訊
t7yang:雖然我還是搞不太清楚到底是伺服器送出的charset導致OP無法 04/03 15:22
t7yang:解析(對的,只是OP自己傻傻搞不清楚)還是OP沒有發送正確 04/03 15:25
t7yang:的Charset給伺服器,導致伺服器亂傳一個過來,還是... 04/03 15:25
Accept-charset是web browser->web server的request header Content-type是web server->web browser的response header,後面可以接一個charset 我當初丟在Beta testing forum的文章 http://my.opera.com/community/forums/topic.dml?id=943172 ---------- Opera 11.01連http://tw.search.yahoo.com 部分HTTP request header GET / HTTP/1.1 Host: tw.search.yahoo.com Accept-Language: zh-TW,en;q=0.9 Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 部分HTTP response header HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 ---------- 11.10連http://tw.search.yahoo.com 部分HTTP Request header GET / HTTP/1.1 Host: tw.search.yahoo.com Accept-Language: zh-TW,zh;q=0.9,en;q=0.8 Accept-Encoding: gzip, deflate 部分HTTP Response header HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 這邊的回應header就是ISO-8859-1 ---------- 11.10連http://tw.search.yahoo.com 並使用Opera Dragonfly設定HTTP Request header Accept-charset為 Accept-charset: big5, utf-8;0.8, *;0.1 部分HTTP Request header GET / HTTP/1.1 User-Agent: Opera/9.80 (Windows NT 5.1; U; zh-tw) Presto/2.8.130 Version/11.10 Host: tw.search.yahoo.com Accept-Language: zh-TW,zh;q=0.9,en;q=0.8 Accept-Charset: big5, utf-8;0.8, *;0.1 Accept-Encoding: gzip, deflate 部分HTTP Response Header HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 ---------- 11.10連http://tw.search.yahoo.com 並使用Opera Dragonfly設定HTTP Request header Accept-charset為 Accept-charset: big5, *;0.1 部分HTTP Request header GET / HTTP/1.1 Host: tw.search.yahoo.com Accept-Language: zh-TW,zh;q=0.9,en;q=0.8 Accept-Charset: big5, *;0.1 Accept-Encoding: gzip, deflate 部分HTTP Response Header HTTP/1.1 200 OK Content-Type: text/html; charset=BIG5 不過剛剛用Opera 11.10測試的時候 (這邊似乎有問題,因為內容還是丟UTF-8版本,但是header是Big5) ---------- 然後HTTP 1.1的情況,是可以不送Accept-charset啦... 不送代表client都能處理 然後Opera 11.10移除Accept-charset... 無視 opera:config#Network|HTTPAcceptCharset 所以那個選項設定了也沒用 至於我提到apache是想到根據client header決定回傳內容的方式 http://httpd.apache.org/docs/2.3/content-negotiation.html httpd Negotiation Algorithm 是說我看到這段 Select variants with the best charset media parameters, as given on the Accept-Charset header line. Charset ISO-8859- 1 is acceptable unless explicitly excluded. Variants with a text/* media type but not explicitly associated with a particular charset are assumed to be in ISO-8859-1. 不過我不確定他寫的associated with a particular charset 是說server沒指定Content-Type後面那個charset 還是指Accept-charset就是了 如果說預設給ISO-8859-1就:p -- 是說其實如果都丟UTF-8版本的話,Yahoo乾脆就直接回 Content-Type: text/html; charset=UTF-8就好了 (只是我不知道是不是每個環境都支援UTF-8就是了) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.247.185
weiyucsie:突然想到在putty用w3m,然後環境是big5這樣XD 04/03 16:44
t7yang:未看先推專業 版主M文 謝謝 XD 04/03 16:55
weiyucsie:我只是寫一些實驗結果而已orz... 04/03 17:08
※ 編輯: weiyucsie 來自: 220.140.247.185 (04/03 17:10)