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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AJAX中文传值乱码问题解决方法

發(fā)布時(shí)間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AJAX中文传值乱码问题解决方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在軟件開(kāi)發(fā)過(guò) 程中,亂碼問(wèn)題一直都是我們最頭痛的事,頁(yè)面的編碼,開(kāi)發(fā)環(huán)境的編碼,數(shù)據(jù)庫(kù)的編碼,有一個(gè)不一致都有可能導(dǎo)致亂碼問(wèn)題的發(fā)生;有的很好解決,有的很棘 手;當(dāng)你使用AJAX技術(shù)時(shí),為調(diào)用的后臺(tái)方法傳值是必不可少的,英文和數(shù)字還好解決,一般不會(huì)出現(xiàn)亂碼,介是如果是要傳中文的字符呢?很容易就會(huì)亂掉, 因?yàn)樵谀闶褂镁幋a的時(shí)候一般會(huì)默認(rèn):BG2312,而Ajax默認(rèn)使用的是UTF-8編碼格式,客戶(hù)端中文字符傳輸?shù)椒?wù)器端時(shí),很可能會(huì)出現(xiàn)中文亂碼。
? 下面我們就討論一下如何解決咱們?cè)谶M(jìn)行軟件開(kāi)發(fā)過(guò)程中遇到的亂碼問(wèn)題:

? 1、如果你不使用Ajax時(shí)出現(xiàn)亂碼,大多都是頁(yè)面和后臺(tái)代碼的編碼不一致,只要轉(zhuǎn)換一下就好了,可以采用下面兩句話:

??? request.setCharacterEncoding("UTF-8");
??? response.setCharacterEncoding("UTF-8");

? 2、如果你使用了Ajax技術(shù)時(shí)出現(xiàn)亂碼,可以使用以下兩種解決方法:

? (1)、在瀏覽器端對(duì)要傳遞的中文參數(shù)進(jìn)行編碼處理.代碼如下:

? xmlhttp.open("POST","AjaxServlet",true); //請(qǐng)求參數(shù)初始化

? xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因?yàn)檎?qǐng)求方式為POST,所以這里要設(shè)置請(qǐng)求頭.GET方法可以省略
? xmlhttp.send("str=" encodeURI(encodeURI("安安DIY創(chuàng)作室"))); //向服務(wù)器端發(fā)送參數(shù)

? 在服務(wù)器端代碼:
? PrintWriter out = response.getWriter(); //得到response的輸出流對(duì)象

? String str = request.getParameter("str"); //得到頁(yè)面上名字為str的參數(shù)
? String str2 = URLDecoder.decode(str,"utf-8"); //對(duì)得到的參數(shù)進(jìn)行解碼

? out.print(str); //向?yàn)g覽器端發(fā)送數(shù)據(jù)

? (2)、在瀏覽器端對(duì)要傳遞的中文參數(shù)進(jìn)行編碼處理.代碼如下:

? xmlhttp.open("POST","AjaxServlet",true); //請(qǐng)求參數(shù)初始化

? xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因?yàn)檎?qǐng)求方式為POST,所以這里要設(shè)置請(qǐng)求頭.(如果請(qǐng)求方式為GET,此句代碼可以省略)

? xmlhttp.send("str=" encodeURI("安安DIY創(chuàng)作室")); //向服務(wù)器端發(fā)送參數(shù)

? 在服務(wù)器端代碼:

? PrintWriter out = response.getWriter(); //得到response的輸出流對(duì)象

? String str = request.getParameter("str"); //得到頁(yè)面上名字為str的參數(shù)
??String str2 = new String((str.getBytes("ISO-8859-1")),"UTF-8");?//對(duì)得到的參數(shù)進(jìn)行解碼
? out.print(name); //向?yàn)g覽器端發(fā)送數(shù)據(jù)

? 以上兩種方法,在使用Ajax傳遞中文參數(shù)時(shí),亂碼問(wèn)題可以在任意瀏覽器下解決,正確顯示中文。有的只用紅色部分那一名代碼就好了,如果你有好的辦法,一定要到上海軟件開(kāi)發(fā)空間我留言哦…共同學(xué)習(xí)…

轉(zhuǎn)載自安安DIY創(chuàng)作室 http://www.vscsoft.com/
本文鏈接:http://www.vscsoft.com/post/60.html

總結(jié)

以上是生活随笔為你收集整理的AJAX中文传值乱码问题解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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