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