Java-黑蝙蝠 |
|
|||
外表澀苦但留醇香于舌尖
onlineAdult Dating |
公告
日歷
統(tǒng)計
導航常用鏈接留言簿(6)隨筆分類(10)
隨筆檔案(10)相冊天氣預報常去論壇搜索積分與排名
最新評論
閱讀排行榜評論排行榜 |
?
/**
?*?21:24?2006-10-12 ?*?@author?blackbat? ?*?@title?jsp中文亂碼終極解決方法 ?*/
let's?go。
一?找出問題的根源 ???亂碼可能出現(xiàn)的地方:1?jsp頁面中? ???????????????????????2?jsp頁面之間相互傳參的參數(shù) ???????????????????????3?與數(shù)據(jù)庫中數(shù)據(jù)的存取 ???基本歸納為以上幾種。 二?尋找解決方案 ???1?出現(xiàn)在jsp頁面中,是由于沒有設置jsp頁面的中文字符編碼。 ???2?出現(xiàn)在jsp頁面之間相互傳參,是由于參數(shù)沒有設置正確的字符編碼。 ???3?以上2個問題解決了,那么存到數(shù)據(jù)庫中,自然就不存在亂碼。除非你對存入到數(shù)據(jù)庫里的數(shù)據(jù)再次進行編碼。
三解決方法:
1的解決方法? <% @?page?contentType = " text/html;charset=gb2312 " ? %> 加上這句解決jsp頁面中的中文亂碼顯示,tomcat編譯完后向客戶端輸出的html文件不是采 用中文編碼,所以會導致亂碼產(chǎn)生。 2的解決方法 2.1? <% request.setCharacterEncoding( " gb2312 " ); %> 加上這句解決jsp頁面中的中文參數(shù)傳遞亂碼。 因為瀏覽器默認使用的編碼是“UTF-8”發(fā)送請求參數(shù)。 我們把它改為"gb2312"就ok了。 2.2?String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312"); 這句的意思是,把傳來的參數(shù)全部編碼轉(zhuǎn)換成gb2312,這樣做的缺點是每次傳來一個參數(shù) 都要這樣寫,很麻煩。 同樣可通過設置server.xml配置文件來實現(xiàn)。 < Connector port ="8080" ???????????????maxHttpHeaderSize ="8192" ???????????????maxThreads ="150" ?minSpareThreads ="25" ?maxSpareThreads ="75" ???????????????enableLookups ="false" ?redirectPort ="8443" ?acceptCount ="100" ???????????????connectionTimeout ="20000" ?disableUploadTimeout ="true" ? URIEncoding ="gb2312" /> 但是這樣就應用到整個webapp中去了。 另: <% @page?pageEncoding = " gb2312 " %> 此句是為了讓jsp編譯器能正確地解碼含有中文字符的jsp頁面。 其它方法還可以修改web.xml文件,配置一個過濾器。其原理都一樣,只是換種方式而已。 有的書上專門寫了一個函數(shù)來解決亂碼,實際上對比一下就知道那種解決方法的好與壞。 回過頭來一看,解決亂碼也不過如此。 ok,實際就加上這3句搞定問題。 <% @page?pageEncoding = " gb2312 " %> <% @?page?contentType = " text/html;charset=gb2312 " ? %> <% request.setCharacterEncoding( " gb2312 " ); %> 請大家有什么想法,以及有什么不對的地方請各位說明,寫在留言上,大家一起討論。
評論:
|
![]() |
|
Copyright © 黑蝙蝠 | Powered by: 博客園 模板提供:滬江博客 |