jsp檔案中亂碼現象經常遇到,那如何處理就是我們不可避免的話題,那麼該如何解決呢,下面我針對不同的情況,給出幾種處理方式:1) jsp頁面中文亂碼,這種情況比較好處理,在頁面的page指令中加上如下一項就行
<%@ page contenttype=」text/html;charset=utf-8」 %>
2) jsp頁面採用表單提交時,提交的資料中包含中文,並且提交方式為post這時我們獲取表單資料後,展示到其它頁面時會出現亂碼,解決方案是在獲取請求中的引數前,先設定請求的字符集。
1 request.setcharacterencoding(「utf-8」) ;
3) 還是表單提交資料,但是提交方式為預設的get方式,這時即使我們設定了請求字符集,但取出來還是亂碼,這時需要如下的轉換方式,我把轉換方式用乙個編碼轉換類來實現了。
1/*2* 定義乙個轉換字符集的工具類charsettool 3*
4* 定義乙個方法,用來轉換 5*/
6public
class
charsettool 7
21catch
(unsupportedencodingexception e) 22
26}
27return
rtstr;
28}
29 }
4) url中文引數亂碼處理,
1<% string str="我是中國人"; %>
2">我是鏈結,單擊可以提交引數
注:next 為 servlet的url pattern那在將中文作為引數值傳遞時,首先要把中文字串進行編碼轉換,轉換成url格式
操作如下:
1<% string str="我是中國人"; 2//
使用urlencoder.encode方法
3 str = urlencoder.encode(str,"utf-8");
4 %>
5">我是鏈結,單擊可以提交引數
綜合以上幾種比較常見的jsp中文亂碼的處理方式,不管是何種提交方式,我們都可以使用jsp中的過濾器(filter)來過濾字元編碼,下面我就給出乙個我自己定義的 「通用」的字集編碼過濾器。
1/**2
* 處理中文字符集的過濾器 3*
4* @author
administrator 5*
6*/7public
class encodingfilter implements
filter 8
1314
public
void
dofilter(servletrequest request, servletresponse response,filterchain chan)
15throws
ioexception, servletexception 16
29else30
49}
50}
51//
呼叫過濾器鏈中的下乙個過濾器
52chan.dofilter(request, response);
53}
5455
//轉換方法(內部私有方法)
56private
string toutf8(string str) 57
67 } catch
(unsupportedencodingexception e)
7172
return
rt;
73}
7475
//初始化方法
76public
void init(filterconfig config) throws
servletexception 77
79 }
12<
filter
>
3<
filter-name
>encodingfilter
filter-name
>
4<
filter-class
>ocean.mvc.filter.encodingfilter
filter-class
>
5filter
>67
<
>
8<
filter-name
>encodingfilter
filter-name
>
9<
url-pattern
>/*
url-pattern
>
10>
參考原文:
web後端 Django學習筆記11
使用中介軟體完成乙個隨機 的場景,每次發出請求後,產生乙個1 100的隨機數,如果隨機數的值大於90,則跳轉到中獎頁面,顯示 恭喜,您中獎了 否則返回給 客戶端乙個文字 抱歉,本次未中獎 1.1 演示 request.prize number number 動態新增乙個屬性2 views from ...
jsp中URL傳遞中文引數的處理方法
在頁面的url中使用encodeuri encodeuri 中文 對中文進行編碼,並在伺服器的j a程式中使ycyzy用urldecoder.decodewww.cppcns.com 中文,utf 8 進行解碼即可 如果url中需要傳遞 等特殊符號可以使用encodeuricomponent enc...
jsp中超連結跳轉時傳遞中文引數亂碼
今天在做jsp裡的cuid功能時,遇到了乙個小坎。經常一番折騰,終於結束了。做完查詢功能後,要對查詢到資料進行修改操作,修改操作就需要把要修改的資料的各個項帶到乙個新的修改頁面吧,當然可以再單獨寫乙個servlet對映和類來跳轉到修改頁面update.jsp.在web.xml中增加乙個servlet...