原來一編程時一直使用GBK作為默認編碼,也很少出現中文問題。但最近在使用Eclipse進行編程,將默認的編碼方式變成了UTF-8。這一改變也產生了新的問題。當表單使用Post方式提交時,可以使用String myParam=new String(request.getParameter("myParam").getBytes("ISO-8859-1"),"UTF-8");的語句來讀取。但當表單使用Get方式提交時,比如:"myUrl.jsp?myParam=中文"這樣的方式如果myParam處的中文數為單數時比如“中國人”,使用上面的方法讀出的最后一個字為亂碼。這個問題困擾了我一天,今天早晨終于在網上找到了解決辦法。
在提交之前可以使用java.net.URLEncoder.encode();方法先將中文轉換成UTF-8格式,就可以解決了。例如:myUrl.jsp?myParam=<%java.net.URLEncoder.encode(myVar,"UTF-8")%>