天天看點

使用java.net.URLDecoder擷取請求中的中文字元

鍦╳eb涓嬌鐢╦ava.net.URLDecoder鍙互甯姪鎴戜滑瑙e喅涓枃涔辯爜鐨勯棶棰樸€?

JDK鎵嬪唽涓殑瀹氫箟濡備笅锛? public class URLDecoderextends ObjectHTML

瀹冩槸鏍煎紡瑙g爜鐨勫疄鐢ㄥ伐鍏風被銆傝绫誨寘鍚簡灏?String 浠?application/x-www-form-urlencoded MIME 鏍煎紡瑙g爜鐨勯潤鎬佹柟娉曘€偮? 璇ヨ漿鎹㈣繃绋嬫濂戒笌 URLEncoder 绫諱嬌鐢ㄧ殑杩囩▼鐩稿弽銆傚亣瀹氬凡缂栫爜鐨勫瓧绗︿覆涓殑鎵€鏈夊瓧绗︿負涓嬪垪涔嬩竴锛?a" 鍒?"z"銆?A" 鍒?"Z"銆?0" 鍒?"9" 鍜?"-"銆?_"銆?." 浠ュ強 "*"銆傚厑璁告湁 "%" 瀛楃锛屼絾鏄皢瀹冭В閲婁負鐗規畩杞箟搴忓垪鐨勫紑濮嬨€偮? 杞崲涓嬌鐢ㄤ互涓嬭鍒欙細聽

瀛楁瘝鏁闆瓧瀛楃 "a" 鍒?"z"銆?A" 鍒?"Z" 鍜?"0" 鍒?"9" 淇濇寔涓嶅彉銆偮? 鐗規畩瀛楃 "."銆?-"銆?*" 鍜?"_" 淇濇寔涓嶅彉銆偮? 鍔犲彿 "+" 杞崲涓虹┖鏍煎瓧绗?" "銆偮? 灏嗘妸 "%xy" 鏍煎紡搴忓垪瑙嗕負涓€涓瓧鑺傦紝鍏朵腑 xy 涓?8 浣嶇殑涓や綅鍗佸叚杩涘埗琛ㄧず褰㈠紡銆傜劧鍚庯紝鎵€鏈夎繛缁寘鍚竴涓垨澶氫釜杩欎簺瀛楄妭搴忓垪鐨勫瓙瀛楃涓詫紝灏嗚鍏剁紪鐮佸彲鐢熸垚杩欎簺杩炵畫瀛楄妭鐨勫瓧绗︽墍浠f浛銆傚彲浠ユ寚瀹氬杩欎簺瀛楃杩涜瑙g爜鐨勭紪鐮佹満鍒訛紝鎴栬€呭鏋滄湭鎸囧畾鐨勮瘽锛屽垯浣跨敤骞沖彴鐨勯粯璁ょ紪鐮佹満鍒躲€偮? 璇ヨВ鐮佸櫒澶勭悊闈炴硶瀛楃涓叉湁涓ょ鍙兘鐨勬柟娉曘€備竴绉嶆柟娉曟槸涓嶇璇ラ潪娉曞瓧绗︼紝鍙︿竴绉嶆柟娉曟槸鎶涘嚭 IllegalArgumentException 寮傚父銆傝В鐮佸櫒鍏蜂綋閲囩敤鍝鏂規硶鍙栧喅浜庡疄鐜般€?

瀹冪殑鏋勯€犳柟娉曚負URLDecoder锛堬級

鏂規硶鏈変袱涓? 1.static String decode(String s)聽

杩欎釜鏂規硶宸茶繃鏃躲€?缁撴灉瀛楃涓插彲鑳藉洜骞沖彴榛樿缂栫爜涓嶅悓鑰屼笉鍚屻€傚洜姝わ紝鏀圭敤 decoe(String,String) 鏂規硶鎸囧畾缂栫爜銆偮? 2.static String decode(String s, String enc)聽

浣跨敤鎸囧畾鐨勭紪鐮佹満鍒跺 application/x-www-form-urlencoded 瀛楃涓茶В鐮併€偮? 杞婚噸s琛ㄧず瑕佽В鐮佺殑String锛宔nc琛ㄧず鎵€鏀寔鐨勫瓧绗︾紪鐮佺殑鍚嶇О銆?

杩斿洖鍊間負鏂拌В鐮佺殑String

瀹炰緥濡備笅锛?

form.jsp鐨勬枃浠剁殑鍐呭濡備笅锛?

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<html>

<head>

<title> 鏀堕泦鍙傛暟鐨勮〃鍗曢〉 </title>

<meta name="website" content="http://www.crazyit.org" />

</head>

<body>

<form id="form1" method="get" action="getrequest.jsp">

<input type="text" name="name"/>

<input type="submit" value="鎻愪氦">

</form>

</body>

</html>

涓婇潰鐨勭▼搴忎腑鍙湁涓€涓緭鍏ユ鍜屼竴涓彁浜ょ殑琛ㄥ崟銆?

getrequest.jsp鐨勬枃浠剁殑鍐呭濡備笅锛?

<%@page import="java.net.URLDecoder"%>

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>

聽 <head>

聽 聽 <base href="<%=basePath%>" target="_blank" rel="external nofollow" >

聽 聽 <title>My JSP 'form1Request.jsp' starting page</title>

聽 </head>

聽 <body>

聽 聽 聽 聽<%

聽 聽 聽 聽 聽 聽String str = request.getQueryString();

聽 聽 聽 聽 聽 聽out.println("鍘熷鐨勬煡璇㈠瓧绗︿覆涓猴細"+str);

聽 聽 聽 聽 聽 聽String temp = URLDecoder.decode(str, "gbk");

聽 聽 聽 聽 聽 聽out.println("瑙g爜鍚庣殑鏌ヨ瀛楃涓蹭負"+temp);

聽 聽 聽 聽 %>

聽 </body>

</html>

鍦ㄦ祻瑙堝櫒鎵ц鐨勭粨鏋滃涓嬶細

鍘熷鐨勬煡璇㈠瓧绗︿覆涓猴細name=%D6%D0%BB%AA%C8%CB%C3%F1%B9%B2%BA%CD%B9%FA聽

瑙g爜鍚庣殑鏌ヨ瀛楃涓蹭負name=涓崕浜烘皯鍏卞拰鍥?