在URL去訪問servlet時,url字符串會被編碼成相應的字符集,比如下面代碼
URL url=new URL("http://localhost:8080/TestWeb/URLServlet?name=中國");
那么在servlet端看來,這個"中國"兩個漢字必須使用以上代碼的調用端的系統默認字符集來解碼,比如我的機器的默認字符集是GBK.那么Servlet端的tomcat的相應的connector的URIEncoding必須設置為GBK或者其兼容字符集.否則出現亂碼.
當然,在上述代碼中可以把中文用URLEncoder來按照相應的字符集編碼.比如URLEncoder.encode("中國","UTF-8");那相應的tomcat端.比如把connector的URIEncoding屬性設置為相應的字符集UTF-8.這樣才不會出現亂碼.
同理.在servlet端.使用contentType設置的字符集編碼方式,和客戶端的解碼方式必須一致,不然中文會出現亂碼現象.