jsp中文亂碼問題

2021-07-10 22:24:20 字數 1401 閱讀 3138

問題說明:由於瀏覽器中的引數傳遞是按位元組傳送,

因此英文和數字不會有任何的問題

,而中文漢字則由兩個位元組組成.

1. request.getparameter("name"): 預設採用的按照iso碼表取值,所以如果不指定request.setcharacterencoding("utf-8")就會對中文不適應。

那麼問題就來了

情況1: 1.jsp中測試中文param

2.jsp中如果直接用$或者<%=request.getparamter("param") %>或者都會顯示亂碼。

解決方案:

在2.jsp中使用轉碼技術: new string(request.getparameter("param").getbytes("iso-8859-1"), "utf-8");不能使用el或者ognl

情況2:

1.jsp中採用form表單post提交引數的方式

解決方案:

1: 2.jsp中可以使用情況1來避免亂碼。

2: 使用filter來過來request,使用

request.setcharacterencoding("utf-8")。

3.:2.jsp中在request.getparameter之前,設定request.setcharacterencoding("utf-8")。

情況3:

1.jsp中使用form表單get方式提交表單:

解決方案:

由於使用get,則瀏覽器的url在傳遞時,預設使用了預設的iso8859碼表的request.getparamter來得到引數,

而此時頁面其他地方再使用request.getparameter來得到引數,就會只用iso8859方式,即使指定了request.setcharacterencoding("utf-8")也不行。

所以只能用情況1的方式解決這種情況。

ps:

在ssh或者ssm中如果想使用request傳遞過程中的中午問題的話,可以在web.xml中配置

encodingfilter

org.springframework.web.filter.characterencodingfilter

encoding

utf-8

/*

上面只是說了request在傳遞請求時中文亂碼的問題,如果server響應client,需要向client輸出中文時,同樣也要指定client的碼表

//設定response使用的碼表

response.setcharacterencoding("utf-8");

//指定瀏覽器以什麼碼表開啟傳遞的資料

response.setcontenttype("text/html;charset=utf-8");

jsp中文亂碼問題

eclipse預設新建的jsp檔案編碼是不支援中文的,每次改都好麻煩,網上的設定是各種分析什麼gb2312,包括之前的教材也是,真的好麻煩,決定直接上utf 8 1 設定預設新建的jsp檔案為utf 8模式 如何在eclipse中修改jsp預設編碼 2 設定utf 8之後,jsp檔案中寫中文是沒問題...

JSP中文亂碼問題

1 很顯然我們使用get或post方法傳送資料時,用的是機器上的預設編碼,在中文系統中使用的是gb2312,那麼我們應該設定request.setcharacterencoding utf 8 將傳送過來的編碼轉換為utf 8的編碼,則在顯示的時候就不會顯示為亂碼了,因為我的eclipse是使用的u...

JSP 中文亂碼問題

關於中文亂碼 1 在jsp頁面上輸入中文,請求頁面後不出現亂碼 保證contenttype text html,charset utf 8 pageencoding utf 8 中的charset和pageencoding的編碼一致,且都支援中文。還需要保證瀏覽器的顯示的字元編碼和請求編碼一致。中文...