AJAX中文传值乱码问题解决方法
在軟件開(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)題。
- 上一篇: 对于一个小白适合开什么店 2022年可
- 下一篇: js向jsp传中文出现乱码的解决方法