生产中可能遇到到场景: try { // 将application/x-www-from-urlencoded字符串转换成普通字符串 String keyWord = URLDecoder.decode("%E4%BD%A0%E5%A5%BD", "utf-8"); System.out.println(keyWord); //输出你好 // 将普通字符创转换成application/x-www-from-urlencoded字符串 String urlString = URLEncoder.encode("你好", "utf-8"); //输出%E4%BD%A0%E5%A5%BD System.out.println(urlString); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } PS: 由于页面链接在传参时出现乱码,因此查找原因,由于带图表的页面不能以utf-8进行charset设置,chartset=gbk,因此在跳转到chartset=utf-8页面时由于编码方式不同不能传参加载成功,因此采用这种编码再解码的方式可实现。 URLEncoder.encode()函数是把中文字符转换成十六进制,然后在每个字符前加%; URLDecoder.decode()函数与URLEncoder.encode()正好相反,用于解码已编码的url字符串,将十六进制转换成中文。 Java包: import java.net.URLEncoder; import java.net.URLDecoder; code: <a href="detail.jsp?section=<%=URLEncoder.encode("示例","utf-8")%>">示例</a> String section=URLDecoder.decode(request.getParameter("section"),"utf-8"); section=new String(section.getBytes("iso-8859-1"), "utf-8"); |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-5 04:20 , Processed in 0.030398 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.