2021年12月4日 星期六

JSP網頁URL傳遞中文問題

以一般代碼維護為例:

代碼清單頁面

<% String url2 = "zzz.jsp?xxx="+ 
	java.net.URLEncoder.encode(bean.getXxx(), "Big5"); %>

  <a href="<%= url2 %>"><%=bean.getXxx() %></a>

代碼修改頁面(要取得代碼的KEY值)

<%
String xxx = java.net.URLDecoder.decode(new String(
	request.getParameter("xxx").getBytes("iso-8859-1"),"Big5"),"Big5");
%>

小插曲:

  • 我的測試環境是使用Tomcat 8.5.71
  • 起初代碼修改頁面一直無法正確接收到中文字, 因舊Tomcat URIEncoding預設ISO-8859-1,但是Tomcat8.5 改為預設UTF-8
  • 考量其他舊程式將Tomcat 8.5改回預設ISO-8859-1
 
Tomcat\conf\server.xml :
<connector connectiontimeout="20000" port="80" protocol="HTTP/1.1" 
		redirectport="8443" relaxedquerychars="\" uriencoding="ISO-8859-1" />