解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery
來源:懂視網
責編:小采
時間:2020-11-27 21:02:32
解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery
解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery:網上搜了很多方法,可能因為我用的這jquery.form.js是3.01版,也就是今年3月6日才發布的版本(汗。就是前天),所以普遍不太管用。至于低版本的是否管用,這個我沒有去考證,但大部分還是不負責任的Copy Copy Copy 。還有一些方法是在提交前對所有的值先編
導讀解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery:網上搜了很多方法,可能因為我用的這jquery.form.js是3.01版,也就是今年3月6日才發布的版本(汗。就是前天),所以普遍不太管用。至于低版本的是否管用,這個我沒有去考證,但大部分還是不負責任的Copy Copy Copy 。還有一些方法是在提交前對所有的值先編

網上搜了很多方法,可能因為我用的這jquery.form.js是3.01版,也就是今年3月6日才發布的版本(汗。。就是前天),所以普遍不太管用。至于低版本的是否管用,這個我沒有去考證,但大部分還是不負責任的Copy Copy Copy 。還有一些方法是在提交前對所有的值先編碼,我覺得這個太麻煩,額外增加了不少的前端代碼量,也就沒有采取。
好吧,那還是自己來處理吧。首先我們要找到切入點,也就是解決問題的入口。既然我們是要對JS傳遞的數據進行編碼,那么首先肯定要從數據的傳遞函數開始。我調用的是ajaxSubmit函數,就是它了。打開js文件,找到這個函數,看源碼,發現有一行:
代碼如下:
var qx, a = this.formToArray(options.semantic);
formToArray的作用是把采集到的表單數據轉換成對象數組,然后傳遞到$.get、$.post 等Ajax函數。我覺得有戲了。不過接下去的代碼幾百行,為節省時間,還是直入主題吧。我在上面那行設置斷點,在Web頁面輸入中文數據,通過JS一步步調試來理解該源碼。程序執行之后,幾經跳轉,最后在fieldValue這個函數的最后部分,終于找到了:
代碼如下:
return $(el).val();
這樣,我們只要在這里進行客戶端的編碼即可:
代碼如下:
return escape($(el).val());
然后在服務器端,可以用 Server.UrlDecode() 進行解碼,這樣亂碼就不在出現了,可以正確的接受中文字符了~~~
大家有什么好的方法或者建議也可以提出來。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery
解決3.01版的jquery.form.js中文亂碼問題的解決方法_jquery:網上搜了很多方法,可能因為我用的這jquery.form.js是3.01版,也就是今年3月6日才發布的版本(汗。就是前天),所以普遍不太管用。至于低版本的是否管用,這個我沒有去考證,但大部分還是不負責任的Copy Copy Copy 。還有一些方法是在提交前對所有的值先編