中文問題,是在應用中常常遇到的問題。
這將涉及到字符解碼操作,我們在應用中常常會用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");