Web後端筆記 jsp傳遞中文資料出現亂碼的問題

2022-07-12 08:39:06 字數 2511 閱讀 2992

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 }

1

2<

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...