1.post請求:
request.
setcharacterencoding
("utf-8"
);
2.get請求:
string filename = request.
getparameter
("filename");
//進行判斷
if(filename !=null &&"".
equals
(filename)
)
//由於各個瀏覽的編碼規則不同,所以需要先對瀏覽器進行判斷
//1.獲取瀏覽器廠商頭資訊
string agent = request.
getheader
("user-agent");
瀏覽器中包含firefox字樣,可以進行判斷
if(agent.
contains
("firefox"))
else
在util(工具包)下建立firefoxencoding類,然後在firefoxencoding類建立base64encodefilename(),方便的使用
// 解決火狐瀏覽器的url位址傳輸中文問題專用方法
public
static string base64encodefilename
(string filename)
catch
(unsupportedencodingexception e)
}
## excel**內容亂碼
原因:httpheader要求其內容必須為iso8859-1編碼,在將這些字元傳遞到目的地後,目的地程式再通過相反的方式strings_utf8 = newstring(s_iso88591.getbytes(「iso8859-1」),「utf-8」)來得到正確的中文漢字"中",這樣就既保證了遵守協議規定、也支援中文。
示例: string filename =
"匯出資料.xls"
; string filename2 = filename;
string agent = request.
getheader
("user-agent");
//獲取瀏覽器廠商頭資訊
if(agent.
contains
("firefox"))
else
//設定兩個頭 乙個流
//1.設定檔名稱的mete值的型別,通過serevletcontext來獲取
response.
setcontenttype()
;//2.設定content-dispostion
"content-disposition", "attachment;filename="+filename2);
response.
setheader
("content-disposition"
,"inline;filename="
+new
string
(filename2.
getbytes
("utf-8"),
"iso8859-1"))
;get
可以按照上面的轉換格式的方式,但是這樣需要每乙個引數都需要修改,所以我們可以採用另外一種方式,修改tomcat編碼:
在tomcat中修改編碼:
將原來的
換成:"8080" protocol=
/>
這樣就ok了
post
在web.xml中檔案中新增配置:
<
!--配置spring的過濾器--
>
spring filter<
/filter-name>
class
>
org.springframework.web.filter.characterencodingfilter
<
/filter-
class
>
encoding<
/param-name>
utf-
8<
/param-value>
<
/init-param>
<
/filter>
spring filter<
/filter-name>
/*
中文亂碼問題
母頁 tran cel.jsp?p user id p user id p paraxml mytran cel paraxml ie8對window.open二進位製流會遮蔽,用二次請求解決該問題 modify by 20120731。mytran cel paraxml encodeuri my...
中文亂碼問題
url位址中傳遞中文,接收亂碼。修改tomcat的server.xml.在埠號那一項中增加 uriencoding utf 8 connectiontimeout 20000 redirectport 8443 uriencoding utf 8 在form表單中中文亂碼 1.保證你的專案的屬性是u...
中文亂碼問題
中文亂碼問題 1.什麼時候會出現亂碼?編碼和解碼的方式不一致。2.請求時亂碼 a.get a.修改tomcat的配置檔案,即修改 tomcat conf server.xml中的70行,增加uriencoding utf 8 b.不修改解碼方式,讓servlet直接接收亂碼,然後採用iso8859 ...