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