日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ajax中文乱码问题解决方法(服务器端用servlet)

發(fā)布時間:2024/9/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ajax中文乱码问题解决方法(服务器端用servlet) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近研究ajax,在界面上text中輸入中文,發(fā)送出去后返回亂碼。經(jīng)過一個晚上的測試,已經(jīng)得到滿意答案,代碼如下:
HTML:
??? ……
??? //實際上這里的charset=utf-8 也是可以的,因為在中文平臺下
??? //用了GB2312 ??? <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
JS:
??? 我用了兩個方法提交:GET 和 POST。在服務器端要對應不同的提交方式轉(zhuǎn)換不同的編碼。?
?? ……
??? //要傳遞的參數(shù)
?? var queryString = "firstName=" + firstName + "&lastName=" + lastName
??? ??? ??? ??? ??? ??? ? + "&birthday=" + birthday;??? function ?
??? //GET方式提交
??? doRequestUsingGET() {
??? ??? createXMLHttpRequest();
??? ??? var url = "GetAndPostExample?" + queryString + "&timeStamp="
??? ??? ??? ??? ??? ??? ? + new Date().getTime();
??? ??? xmlHttp.onreadystatechange = handleStateChange;
??? ??? xmlHttp.open("GET", url, true);
??? ??? xmlHttp.send(null);
??? }
??? //POST方式提交
??? function doRequestUsingPOST() {
??? ??? createXMLHttpRequest();
??? ??? var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
??? ??? xmlHttp.open("POST", url, true);
??? ??? xmlHttp.onreadystatechange = handleStateChange;
??? ??? xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
??? ??? xmlHttp.send(queryString);
??? }
servlet:
??? ??? response.setContentType("text/xml");
??? ??? //這個一定要設置,這里的設置應該跟HTML中的一樣,但是我在這里
??? ??? //用了 uft-8, 結(jié)果也是一樣。
??? ??? response.setCharacterEncoding("GB2312");
??? ??? //當用POST方法時,一定要設置成utf-8,否則亂碼
??? ??? String firstName = new String(request.getParameter("firstName").getBytes("ISO-8859-1"), "utf-8");
??? ??? //當用GET方法時,要設置成GB2312,否則亂碼。
??? ??? String lastName = new String(request.getParameter("lastName").getBytes("ISO-8859-1"), "GB2312");
測試結(jié)果:
因為界面上兩個控件firstName 和? lastName都輸入中文。
接收xmlHttp.responseText后,會發(fā)現(xiàn)其中一個為亂碼,一個可以正常顯示中文。
在網(wǎng)上還發(fā)現(xiàn)有人說用:
“老問題了,最簡單的方法是,全部escape后發(fā)送。取回后unescape,絕對沒有編碼問題。”
我測試后發(fā)現(xiàn)escape后的東西全部變成null了。不知道有誰成功用過這個方法的,或者還有什么更好的解決亂碼的方法,請拿出來共享一下吧 :)

總結(jié)

以上是生活随笔為你收集整理的Ajax中文乱码问题解决方法(服务器端用servlet)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。