這篇文章主要介紹了不同編碼的頁面表單數(shù)據(jù)亂碼問題解決方法,本文使用一個表單不常用屬性accept-charset解決了這個問題,需要的朋友可以參考下
今天遇到一個很神奇的問題,用戶告訴我這邊網(wǎng)站上的表單提交到查詢系統(tǒng)之后得不到返回值,查詢結(jié)果是0條記錄,但是再本地純html執(zhí)行的結(jié)果卻能搜索到值。自己驗證了下,果然如此,而且比對兩邊GET提交的參數(shù),除了有個字段的值不同外,參數(shù)個數(shù)這些都是相同的,故考慮有可能是編碼問題造成的影響。
分別打開兩個文件后查看,發(fā)現(xiàn)兩邊編碼確實不一致,而服務(wù)器那邊為GB2312,傳遞UTF-8編碼的參數(shù)過去不能正常解析出來,故放狗搜索,查找到form上一個很少用的屬性。
代碼如下:
accept-charset=”gb2312″
這個屬性很有意思,可以設(shè)置表單以什么編碼對內(nèi)容進行編碼,所以,給form 加上這個屬性,就好了。
不過很惡心的,IE對這個屬性不支持,于是只好對表單的onSubmit()方法進行下hack,加上
代碼如下:
onsubmit=”document.charset='gb2312′;”
問題徹底解決。
更多信息請查看IT技術(shù)專欄