摘要:在服務(wù)器端,首先通過自動進(jìn)行第一次解碼可能是等字符集對結(jié)果無影響得到字符,然后再使用進(jìn)行第二次解碼,通常使用方法。
第一種方法:
var url = encodeURI(url);前端js先編碼一次,
后臺:String test=newString(request.getParameter("test").getBytes("iso8859-1"),"UTF-8");
先解碼還原成byte數(shù)組, 再用utf-8 解碼(另外也可以修改容器的配置文件, 讓容器在遇到 GET 提交的參數(shù)時(shí),使用 UTF-8編碼. )
此時(shí)test已成功解碼不出現(xiàn)亂碼問題
第二種方法是:
前端JS兩次編碼:var url = encode(encodeURI(url));
后臺 String test=URLDecoder.decode(request.getParameter("test"),"UTF-8");
如果只進(jìn)行一次encodeURI,得到的是UTF-8形式的URL,服務(wù)器端通過request.getParameter()解碼查詢參數(shù)(通常是iso-8859-1)就會得到亂碼。
進(jìn)行兩次encodeURI,第一次編碼得到的是UTF-8形式的URL,第二次編碼得到的依然是UTF-8形式的URL,但是在效果上和第一次進(jìn)行一次UTF-8編碼(此時(shí)全部轉(zhuǎn)換為ASCII字符,沒有多字節(jié)字符了),第二次進(jìn)行一次iso-8859-1編碼是一樣的.
因?yàn)閷τ⑽淖址麃碚f, UTF-8編碼和ISO-8859-1編碼的結(jié)果相同。在服務(wù)器端,
首先通過request.getParameter()自動進(jìn)行第一次解碼(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,對結(jié)果無影響)得到Ascii字符,然后再使用UTF-8進(jìn)行第二次解碼,通常使用Java.NET.URLDecoder("","UTF-8")方法。
附別人的講解:
客戶端發(fā)送的是請求頭,而參數(shù)會根據(jù)你當(dāng)前頁面的編碼方式進(jìn)行編碼之后發(fā)送給服務(wù)器
如果是utf-8,那就會根據(jù)utf-8進(jìn)行編碼發(fā)送給服務(wù)器.
如果是jsp文件可以用page指令的contentType屬性來設(shè)置顯示的編碼方式.
html文件可以利用標(biāo)簽?zāi)M請求消息頭
而tomcat服務(wù)器是默認(rèn)采用iso-8859-1來對請求消息進(jìn)行解碼的,如果前后不一就很容易出現(xiàn)亂碼問題.
如果是post請求只需要設(shè)置request.setCharacterEncoding()與請求消息編碼前的編碼方式一樣就可以.
如果是get請求,tomcat默認(rèn)的是用iso-8859-1來進(jìn)行解碼, 此時(shí)request.setCharacterEncoding()不起作用,可以在tomcat的server.xml的Connector元素的useBodyEncodingForURI="true"使得起作用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/66850.html
摘要:瀏覽器的中文數(shù)據(jù)提交給服務(wù)器,以編碼對中文編碼,當(dāng)我在讀取數(shù)據(jù)的時(shí)候,拿到的當(dāng)然是亂碼。接下來使用方式傳遞中文數(shù)據(jù),把表單的方式改成即可當(dāng)我們訪問的時(shí)候,又出現(xiàn)亂碼了于是我按照上面的方式,把對象設(shè)置編碼為試試結(jié)果還是亂碼。 什么是HttpServletRequest HttpServletRequest對象代表客戶端的請求,當(dāng)客戶端通過HTTP協(xié)議訪問服務(wù)器時(shí),HTTP請求頭中的所有信...
摘要:性能會有所降低一點(diǎn)內(nèi)容,刷新整個(gè)頁面用戶的操作頁面會中斷整個(gè)頁面被刷新了就是能夠做到局部刷新三對象是中最重要的一個(gè)對象。頭信息已經(jīng)接收,響應(yīng)數(shù)據(jù)尚未接收。 一、什么是Ajax Ajax(Asynchronous JavaScript and XML) 異步JavaScript和XML Ajax實(shí)際上是下面這幾種技術(shù)的融合: (1)XHTML和CSS的基于標(biāo)準(zhǔn)的表示技術(shù) (2)DOM進(jìn)...
閱讀 888·2019-08-30 14:05
閱讀 1776·2019-08-30 11:08
閱讀 3282·2019-08-29 15:41
閱讀 3648·2019-08-23 18:31
閱讀 1590·2019-08-23 18:29
閱讀 608·2019-08-23 14:51
閱讀 2162·2019-08-23 13:53
閱讀 2203·2019-08-23 13:02