ie瀏覽器地址欄中文參數提交服務器亂碼分析

今天我遇到了一個奇怪的問題。之前我通過360瀏覽器地址欄輸入中文參數提交到服務器,服務器解析正常。如下所示:


但是在偶然的情況下,我直接啓動了myeclipse自帶的瀏覽器,結果就發現了問題:


所以我就拿到了ie瀏覽器下測試,結果是同樣的:


我嘗試過很多方法,例如request.setCharacterEncoding("utg-8");new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");

修改tomcat默認傳輸編碼爲utf-8,URLEncoding.encode(equest.getParameter("name"),"utf-8");均沒有效果,還是亂碼(我的瀏覽器和ide編碼都是utf-8)。

只不過變成了???亂碼。後來聽說???是因爲GBK讀UTF-8編碼產生的錯誤,所以我又將ide編碼改爲了gbk,

並調用了newString(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");還是亂碼。

甚至將ide的編碼改爲了gbk,調用new String(request.getParameter("name").getBytes("ISO-8859-1"),"gbk");也是無法解決亂碼

我在網上找了很久,看了很多別人寫的文章,但基本上沒有類似的問題描述

最終我無意在ie的瀏覽記錄中看到了之前的地址信息:


我嘗試着訪問,結果服務器解析正常。所以我就在想,是不是ie地址欄不支持漢字,必須漢字轉碼才能被服務器解析。而360會自動完成這個轉碼工作呢?

於是我就將360中可以正常訪問的一個帶中文參數的url放到ie中訪問,結果似乎證明了我的猜想:



     當然,以上均是我個人的推理和分析,大家有更好的想法可以提出來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章