|
|
一個UTF8頁面需要POST數(shù)據(jù)到GB2312頁面,這時中文的編碼是按照UTF8提交過去的,GB2312頁面無法接收。如何實現(xiàn),網(wǎng)絡(luò)搜索了一種很不錯的方法,但有缺陷,這里一一說起。 1、FORM標(biāo)簽里加上accept-charset代碼,這個能把FORM里的數(shù)據(jù)自動編碼成指定的字符集提交,比如在UTF8頁面提交數(shù)據(jù)到GB2312,代碼就是accept-charset=”GB2312″,但accept-charset除了IE其他瀏覽器都支持。。。 2、這時可以在提交時觸發(fā)JS,document.charset=’GB2312′;,用這段代碼設(shè)置當(dāng)前頁面編碼為GB2312。到這里看似很完美了,但還一個問題,就是觸發(fā)這個代碼后,當(dāng)前頁面刷新之后會亂碼,這是因為你剛才改變了當(dāng)前頁面的編碼。
3、怎么處理刷新后亂碼呢,就是要加以判斷,判斷當(dāng)前頁面編碼和默認(rèn)的編碼是否一致,如果不一致則刷新,if(isIE && document.charset!=”utf-8″)location.reload(false) 4、網(wǎng)上的介紹最多到這步,但是我卻發(fā)現(xiàn),這樣就步入了一個死循環(huán),因為第2步已經(jīng)改變了編碼,您在當(dāng)前頁面不管怎樣刷新,還是改變后的編碼,所以一定要重設(shè)這個編碼才行,代碼就是這樣的。
設(shè)定FORM的accept-charset,讓非IE瀏覽器直接提交編碼后的數(shù)據(jù)到其他頁面 |
回答者:貴州007 (級別:黔小學(xué)生) 日期:2013/10/5 20:14:01 |
贊成[0] ┆ 反對[0] ┆ 評論 |