今天遇到一個很神奇的問題,用戶告訴我這邊網站上的表單提交到查詢系統之後得不到返回值,查詢結果是0條記錄,但是再本地純html執行的結果卻能搜索到值。自己驗證了下,果然如此,而且比對兩邊GET提交的參數,除了有個字段的值不同外,參數個數這些都是相同的,故考慮有可能是編碼問題造成的影響。
分別打開兩個文件後查看,發現兩邊編碼確實不一致,而服務器那邊為GB2312,傳遞UTF-8編碼的參數過去不能正常解析出來,故放狗搜索,查找到form上一個很少用的屬性。
復制代碼 代碼如下:
accept-charset=”gb2312″
這個屬性很有意思,可以設置表單以什麼編碼對內容進行編碼,所以,給form 加上這個屬性,就好了。
不過很惡心的,IE對這個屬性不支持,於是只好對表單的onSubmit()方法進行下hack,加上
復制代碼 代碼如下:
onsubmit=”document.charset='gb2312′;”
問題徹底解決。