2011-06-17 42 views
2

我在Tomcat 6.0中編碼時遇到問題。在我指定的所有jsp頁面上tomcat中的字符編碼

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

and pageEncoding="UTF-8" in page directive。但是當我通過get或post方法傳遞參數(西里爾文字母)時,我有另一個我輸入的符號。我已閱讀,以解決這個問題後,我必須設置request.setCharacterEncoding("UTF-8");這個問題,這真的幫助我。另外我已經閱讀,要解決它在get方法中,我必須在server.xml中的Connector元素中指定URIEncoding =「UTF-8」。而且它也適用於獲取方法,但前提是我沒有指定request.setCharacterEncoding("UTF-8");。所以,如果我指定他們兩個,只有post方法的參數傳遞效果很好。 如何使用get方法做​​到這一點?

編輯 當我使用窗體通過GET方法傳遞參數server.xml中的URIEncoding工作。但是,如果使用response.senRedirect()(也使用GET方法)方法的servlet它修改西里爾參數應用與另一個符號

解決 使用java.net.URLEncoder中的問題得到解決。每個參數必須由URLEncoder.encode(par, "UTF-8")編碼。然後它會正確顯示。

+0

你能安裝Firefox/Firebug的,在這裏粘貼一些HTTP請求/響應頭? – mindas 2011-06-17 21:32:49

+0

我認爲你很迷惑從服務器傳來的信息。嘗試Accept-Encoding HTTP標頭。 – mschonaker 2011-06-18 00:02:12

回答

1

我解決了這個問題,在tomcat server.xml的http和ajp連接器中都添加了URIEncoder=UTF-8。除此之外沒有任何其他。我使用的是Spring,apache/tomcat。