3 回答

TA貢獻1876條經(jīng)驗 獲得超7個贊
一般規(guī)則似乎是瀏覽器根據(jù)表單的內(nèi)容類型對表單響應(yīng)進行編碼。這是一個猜測,如果服務(wù)器發(fā)送給我們“text / xml; charset = iso-8859-1”,那么他們希望以相同的格式返回響應(yīng)。
如果您只是在URL欄中輸入一個URL,那么瀏覽器沒有可以使用的基頁,因此只需要猜測。所以在這種情況下它似乎一直在做utf-8(因為你的輸入都產(chǎn)生了三個八位字節(jié)的表格值)。
可悲的事實是,AFAIK沒有標準用于將查詢字符串中的值設(shè)置為什么字符,或者實際上URL中的任何字符都應(yīng)該被解釋為。至少在查詢字符串值的情況下,沒有理由認為他們一定不對應(yīng)的字符。
這是,你必須告訴你期望的字符集的查詢字符串編碼為---例如,在Tomcat中,你必須調(diào)用request.setEncoding()(或類似的方法),你的服務(wù)器架構(gòu)的已知問題之前,你調(diào)用任何request.getParameter()方法。關(guān)于這個主題的文檔缺乏可能反映了許多開發(fā)人員對該問題缺乏認識。(我經(jīng)常向Java受訪者詢問Reader和InputStream之間的區(qū)別是什么,并經(jīng)??吹娇瞻椎臉幼樱?/p>

TA貢獻1875條經(jīng)驗 獲得超5個贊
IRI(RFC 3987)是取代URI / URL(RFC 3986及更早版本)標準的最新標準。URI / URL本身不支持Unicode(嗯,RFC 3986增加了對未來基于URI / URL的協(xié)議的支持,但不會更新過去的RFC)?!埃XXXX”方案是在某些情況下允許Unicode的非標準擴展,但并非每個人都普遍實現(xiàn)。另一方面,IRI完全支持Unicode,并要求在進行百分比編碼之前將文本編碼為UTF-8。
添加回答
舉報