這篇文章主要介紹html中post亂碼的解決方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)由有經(jīng)驗(yàn)的網(wǎng)站設(shè)計(jì)師、開發(fā)人員和項(xiàng)目經(jīng)理組成的專業(yè)建站團(tuán)隊(duì),負(fù)責(zé)網(wǎng)站視覺設(shè)計(jì)、用戶體驗(yàn)優(yōu)化、交互設(shè)計(jì)和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都做網(wǎng)站、網(wǎng)站建設(shè)易于使用并且具有良好的響應(yīng)性。
html post亂碼的解決辦法:首先打開相應(yīng)的代碼文件;然后將post傳遞過來的ISO編碼內(nèi)容,改成UTF-8格式的內(nèi)容即可。
本文操作環(huán)境:Windows7系統(tǒng)、HTML5版,DELL G3電腦
HTML使用post方式提交中文內(nèi)容出現(xiàn)亂碼的錯(cuò)誤解決方式
今天在做一個(gè)例子的時(shí)候,使用post方式提交表單,如果有中文的話,在另一個(gè)頁面顯示出來的時(shí)候,總是會(huì)出現(xiàn)亂碼;
但是將提交方式改為get的時(shí)候,就不會(huì)出現(xiàn)這種錯(cuò)誤。
詳細(xì)錯(cuò)誤見下面圖片和代碼。
HTML代碼:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>測(cè)試Cookie的設(shè)置和獲取</title> 6 </head> 7 <body> 8 <form action="/TestTomcat/SetCookie" method="post"> 9 站點(diǎn)名:<input type="text" name="name"><br> 10 站點(diǎn)URL:<input type="text" name="url"><br> 11 <input type="submit" value="提交" /> 12 </form> 13 </body> 14 </html>
Servlet代碼,截取一部分:
1 response.setContentType("text/html;charset=utf-8"); 2 3 PrintWriter out=response.getWriter(); 4 5 String title="設(shè)置Cookie實(shí)例"; 6 String docType="<! DOCTYPE html>\n"; 7 out.println(docType+ 8 "<html>\n"+ 9 "<head><title>"+title+"</title></head>"+ 10 "<body bgcolor=\"#f0f0f0\">\n"+ 11 "<h2 align=\"center\">"+title+"</h2>\n"+ 12 "<ul>\n" + 13 " <li><b>站點(diǎn)名:</b>" 14 + request.getParameter("name") + "\n</li>" + 15 " <li><b>站點(diǎn) URL:</b>" 16 + request.getParameter("url") + "\n</li>" + 17 "</ul>\n" + 18 "</body></html>");
出現(xiàn)的錯(cuò)誤:
一開始我以為時(shí)代碼塊放置的位置不對(duì),將上面代碼放在了doPost里面試了一下,還是出現(xiàn)這種錯(cuò)誤。
那么如何用post方式傳遞中文呢?
通過查找資料,
post方式提交
對(duì)于這種情況,response.setCharacterEncoding有影響,當(dāng)沒有對(duì)response.setCharacterEncoding設(shè)置的時(shí)候值為null,則默認(rèn)采用iso-8859-1來進(jìn)行重新編碼(解碼)。
瀏覽器根據(jù)自己頁面的編碼格式作為起始編碼格式,把字符進(jìn)行編碼成byte進(jìn)行傳輸,到了tomcat,tomcat不進(jìn)行干涉其中的重新編碼(解碼)格式。如果response.getCharacterEncoding為null,那么默認(rèn)采用iso-8859-1進(jìn)行重新編碼(解碼)成字符,如果設(shè)置了,就按照設(shè)置的編碼格式進(jìn)行重新編碼(解碼)字符。
POST傳過去的都是單字節(jié)數(shù)據(jù).所以POST傳來的數(shù)據(jù)編碼都是ISO-8859-1的單字節(jié)數(shù)據(jù).因此英文和數(shù)字不會(huì)有亂碼...在這種情況下.過濾器和server.xml里的設(shè)置都是無效的.當(dāng)然request.setCharacterEncoding()也是無效的因?yàn)閟etCharacterEncoding的原理跟過濾器一樣;
對(duì)于上面問題正確的處理方式應(yīng)該為:
String nameStr=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
將post傳遞過來的ISO編碼內(nèi)容,改成UTF-8格式的內(nèi)容,然后再輸出。
html的全稱為超文本標(biāo)記語言,它是一種標(biāo)記語言,包含了一系列標(biāo)簽.通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散的Internet資源連接為一個(gè)邏輯整體,html文本是由html命令組成的描述性文本,html命令可以說明文字,圖形、動(dòng)畫、聲音、表格、鏈接等,主要和css+js配合使用并構(gòu)建優(yōu)雅的前端網(wǎng)頁。
以上是“html中post亂碼的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享文章:html中post亂碼的解決方法
鏈接地址:http://aaarwkj.com/article8/peeeip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)、做網(wǎng)站、微信小程序、網(wǎng)站維護(hù)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)