var url = "target.jsp?param=" + encodeURI(encodeURI("中文參數"));
String param = URLDecoder.decode(request.getParameter("param"), "UTF-8");
若參數包含 +、#、? 等特殊符號,改用 encodeURIComponent:
var url = "target.jsp?param=" + encodeURIComponent(encodeURIComponent("中文+特殊#字元?"));
String param = URLDecoder.decode(request.getParameter("param"), "UTF-8");
| 函數 | 編碼範圍 | 適用情境 |
|---|---|---|
encodeURI | 不編碼 ASCII 字母數字、~!@#$&*()=:/,;?+' | 完整 URL 編碼 |
encodeURIComponent | 編碼所有非字母數字字元 | URL 參數值編碼 |
<!-- JSP 頁面 -->
<a href="detail.jsp?name=<%=encodeURI(encodeURI(productName))%>">查看詳情</a>
<!-- Java Servlet/Controller -->
String name = URLDecoder.decode(request.getParameter("name"), "UTF-8");
encodeURIComponent 而非 encodeURI