遇到了變態(tài)很不常見的參數(shù)亂碼的問題,點擊的時候傳遞帶參數(shù)的網(wǎng)頁地址,由于我傳遞的參數(shù)為漢字,在后臺獲取為亂碼
遇到了變態(tài)很不常見的參數(shù)亂碼的問題
首先看下頁面
如圖,月度指標(biāo)下面也有同樣的三個radio。
三個radio 下面是一個iframe,實現(xiàn)效果是,點擊不同的radio顯示不同的頁面,
點擊的時候傳遞帶參數(shù)的網(wǎng)頁地址。
(1)問題出來了,當(dāng)“日度指標(biāo)”和“月度指標(biāo)”切換的時候,由于我傳遞的參數(shù)為漢字,在后臺獲取為亂碼,
于是進(jìn)行給參數(shù)進(jìn)行encode編碼,后臺UrlDecode解碼,郁悶的發(fā)現(xiàn)還是亂碼。
然后仔細(xì)對照頁面的編碼發(fā)現(xiàn),要在iframe打開的頁面沒有編碼。
于是在頁面加上下面一句話
代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
現(xiàn)在似乎好了,切換“日度指標(biāo)”和“月度指標(biāo)”網(wǎng)頁都能正常顯示,參數(shù)也傳遞過去了。
(2)可是變態(tài)的問題出現(xiàn)了,當(dāng)我切換radio 的時候,報錯了,參數(shù)又變成了亂碼。
這次實在不知道哪里錯了,“日度指標(biāo)”、“月度指標(biāo)”和radio點擊切換頁面的JS方法用的同一個。
郁悶中,自己亂點,發(fā)現(xiàn)如下:
當(dāng)點擊“煤層氣”時頁面正常,然后在點擊“采油”參數(shù)錯誤了,我在采油已經(jīng)為選中的情況下再點“采油”,頁面竟然正常顯示了
想象不應(yīng)該這樣啊
然后比對“煤層氣”和“采油”,“采油”模塊我已經(jīng)掛上正式頁面,“煤層氣”模塊由于還沒有做只是隨意掛上的百度頁面。由于在問題(1)編碼的問題,我首先想到的是編碼問題,查看百度編碼如下,
代碼如下:
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
編碼格式不一樣。所以我把“煤層氣”也掛上了“采油”的頁面,去掉百度。
額,頁面正常運行了,不報參數(shù)亂碼了。
分析下原因:貌似傳遞參數(shù)時,獲取的是當(dāng)前iframe展示頁面編碼,而和要打開的頁面編碼沒有關(guān)系。
但是,真的不應(yīng)該這樣啊,那是一個iframe,我在iframe的父頁面給iframe賦值url、傳遞參數(shù), 管 iframe現(xiàn)在的頁面鳥事???