日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

request中的亂碼問(wèn)題

 昵稱15242507 2014-08-28
       request.setCharacterEncoding(charset);必須寫在第一次使用request.getParameter()之前,這樣才能保證參數(shù)是按照已經(jīng)設(shè)置的字符編碼來(lái)獲取。

        response.setCharacterEncoding(charset);必須寫在PrintWriter out = request.getWriter()之前,這樣才能保證out按照已經(jīng)設(shè)置的字符編碼來(lái)進(jìn)行字符輸出。

        通過(guò)過(guò)濾器,我們可以保證在Servlet或JSP執(zhí)行之前就設(shè)置好了請(qǐng)求和響應(yīng)的字符編碼。

 

但是這樣并不能完全解決中文亂碼問(wèn)題:

        對(duì)于post請(qǐng)求,無(wú)論是“獲取參數(shù)環(huán)節(jié)”還是“輸出環(huán)節(jié)"都是沒(méi)問(wèn)題的;

        對(duì)于get請(qǐng)求,"輸出環(huán)節(jié)"沒(méi)有問(wèn)題,但是"獲取參數(shù)環(huán)節(jié)"依然出現(xiàn)中文亂碼,所以在輸出時(shí)直接將亂碼輸出了。

 

原因是post請(qǐng)求和get請(qǐng)求存放參數(shù)位置是不同的:

        post方式參數(shù)存放在請(qǐng)求數(shù)據(jù)包的消息體中。get方式參數(shù)存放在請(qǐng)求數(shù)據(jù)包的請(qǐng)求行的URI字段中,以?開(kāi)始以param=value&parame2=value2的形式附加在URI字段之后。而request.setCharacterEncoding(charset); 只對(duì)消息體中的數(shù)據(jù)起作用,對(duì)于URI字段中的參數(shù)不起作用。

        當(dāng)使用request.setCharacterEncoding(charset);時(shí),只能解決表單方法為POST的中文亂碼情況,而方法為GET的依然為亂碼。

解決GET亂碼:

                String str = request.getParameter("URL后面的變量名");

                byte b[] = str.getBytes("ISO-8859-1");

                str = new String(b);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多