中文問題,是應用程式上常常遇到的問題。
這將涉及到字元解碼操作,我們在應用中常常會用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等類似的方法去解碼。但這種方式受具體應用環境限制,往往在應用部署環境改變時,還會出現中文亂碼。
在這裡介紹一種解決方法,可以在任何應用程式部署環境下通用。此方法分兩步:
1.在客戶端以escape(encodeURIComponent(fieldValue))方法編碼,例如:
複製代碼代碼如下:
title=escape(encodeURIComponent(title)); //這是js裡的函數
url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;
2.在服務端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),進行解碼。
-------------------------------------------------- ---------------------------
parent.window.location.href 與iframe中src的亂碼問題。
要在這兩個url位址中傳中文,必須加編碼,然後再解碼。
編碼:encodeURI(encodeURI("包含中文的字串"))
解碼:java.net.URLDecoder.decode("需要解碼的字串","utf-8");