IE瀏覽器url中出現中文訪問404問題解決

使用ie瀏覽器,當get請求訪問url中含有中文時,就會返回404.  爲什麼firfox和chrome就沒有這個問題呢? 對比後你會發現瀏覽器地址欄中firfox和chrome把中文都轉換成了%E....什麼的東西,然後copy到ie也能正常訪問了.

這個是ie不會自動把不符合標準的字符轉換成特殊的utf8造成的.

網上搜了好多所謂的解決方法降低tomcat版本什麼的,都太麻煩又不太實用.

今天看ECMA文檔,看到了Global 的 encodeURI() 函數就是解決這類問題的. 所以就記錄下,別下次忘記了.

測試了下是ok的

var url = '/tw/topic/test.htm?id=123&name=姓名';
console.log(url);
console.log(encodeURI(url));

//11:37:01.247 /tw/topic/test.htm?id=123&name=姓名

//11:37:01.248 /tw/topic/test.htm?id=123&name=%E5%A7%93%E5%90%8D

 

瀏覽器中Global對象是作爲window的一部分實現的,

一種取得Global對象的方法是使用以下代碼:var global = function(){ return this; }();

,在沒有給函數明確指定this值的情況下(無論是通過將函數添加爲對象的方法,還是通過調用call()或apply()),this值等於Global對象。而像這樣通過簡單地返回this來取得Global對象,在任何執行環境下都是可行的。

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