亂碼的原因及處理方法

亂碼的原因及處理方法

ID:8979765

大?。?8.95 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-04-13

亂碼的原因及處理方法_第1頁(yè)
亂碼的原因及處理方法_第2頁(yè)
亂碼的原因及處理方法_第3頁(yè)
亂碼的原因及處理方法_第4頁(yè)
亂碼的原因及處理方法_第5頁(yè)
資源描述:

《亂碼的原因及處理方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、亂碼的原因及處理方法2012-05-0917:16困擾已久的亂碼問(wèn)題終于得到解決,希望下次出現(xiàn)更多問(wèn)題,解決問(wèn)題的過(guò)程很愉快!關(guān)于jsp亂碼問(wèn)題的解決2009-01-2221:32關(guān)于jsp亂碼問(wèn)題的解決。1最基本的亂碼問(wèn)題。這個(gè)亂碼問(wèn)題是最簡(jiǎn)單的亂碼問(wèn)題。一般新會(huì)出現(xiàn)。就是頁(yè)面編碼不一致導(dǎo)致的亂碼。<%@pagelanguage="java"pageEncoding="UTF-8"%><%@pagecontentType="text/html;charset=gb2312"%>

2、tle>中文問(wèn)題我是個(gè)好人三個(gè)地方的編碼。第一個(gè)地方的編碼格式為jsp文件的存儲(chǔ)格式。Eclipse會(huì)根據(jù)這個(gè)編碼格式保存文件。并編譯jsp文件,包括里面的漢字。第二處編碼為解碼格式。因?yàn)榇鏋閁TF-8的文件被解碼為iso8859-1,這樣如有中文肯定出亂碼。也就是必須一致。而第二處所在的這一行,可以

3、沒(méi)有。缺省也是使用iso8859-1的編碼格式。所以如果沒(méi)有這一行的話,“我是個(gè)好人”也會(huì)出現(xiàn)亂碼。必須一致才可以。第三處編碼為控制瀏覽器的解碼方式。如果前面的解碼都一致并且無(wú)誤的話,這個(gè)編碼格式?jīng)]有關(guān)系。有的網(wǎng)頁(yè)出現(xiàn)亂碼,就是因?yàn)闉g覽器不能確定使用哪種編碼格式。因?yàn)轫?yè)面有時(shí)候會(huì)嵌入頁(yè)面,導(dǎo)致瀏覽器混淆了編碼格式。出現(xiàn)了亂碼。2表單使用Post方式提交后接收到的亂碼問(wèn)題這個(gè)問(wèn)題也是一個(gè)常見(jiàn)的問(wèn)題。這個(gè)亂碼也是tomcat的內(nèi)部編碼格式iso8859-1在搗亂,也就是說(shuō)post提交時(shí),如果沒(méi)有設(shè)置提交的編碼格式

4、,則會(huì)以iso8859-1方式進(jìn)行提交,接受的jsp卻以u(píng)tf-8的方式接受。導(dǎo)致亂碼。既然這樣的原因,下面有幾種解決方式,并比較。A接受參數(shù)時(shí)進(jìn)行編碼轉(zhuǎn)換Stringstr=newString(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8");這樣的話,每一個(gè)參數(shù)都必須這樣進(jìn)行轉(zhuǎn)碼。很麻煩。但確實(shí)可以拿到漢字。B在請(qǐng)求頁(yè)面上開(kāi)始處,執(zhí)行請(qǐng)求的編碼代碼request.setCharacterEncoding("UTF-8"),把

5、提交內(nèi)容的字符集設(shè)為UTF-8。這樣的話,接受此參數(shù)的頁(yè)面就不必在轉(zhuǎn)碼了。直接使用Stringstr=request.getParamete("something");即可得到漢字參數(shù)。但每頁(yè)都需要執(zhí)行這句話。這個(gè)方法也就對(duì)post提交的有效果,對(duì)于get提交和上傳文件時(shí)的enctype="multipart/form-data"是無(wú)效的。稍后下面單獨(dú)對(duì)這個(gè)兩個(gè)的亂碼情況再進(jìn)行說(shuō)明。C為了避免每頁(yè)都要寫(xiě)request.setCharacterEncoding("UTF-8"),建議使用過(guò)濾器對(duì)所有jsp進(jìn)行編

6、碼處理。這個(gè)網(wǎng)上有很多例子。請(qǐng)大家自己查閱。3表單get提交方式的亂碼處理方式。如果使用get方式提交中文,接受參數(shù)的頁(yè)面也會(huì)出現(xiàn)亂碼,這個(gè)亂碼的原因也是tomcat的內(nèi)部編碼格式iso8859-1導(dǎo)致。Tomcat會(huì)以get的缺省編碼方式iso8859-1對(duì)漢字進(jìn)行編碼,編碼后追加到url,導(dǎo)致接受頁(yè)面得到的參數(shù)為亂碼/、。解決辦法:A使用上例中的第一種方式,對(duì)接受到的字符進(jìn)行解碼,再轉(zhuǎn)碼。BGet走的是url提交,而在進(jìn)入url之前已經(jīng)進(jìn)行了iso8859-1的編碼處理。要想影響這個(gè)編碼則需要在serve

7、r.xml的Connector節(jié)點(diǎn)增加useBodyEncodingForURI="true"屬性配置,即可控制tomcat對(duì)get方式的漢字編碼方式,上面這個(gè)屬性控制get提交也是用request.setCharacterEncoding("UTF-8")所設(shè)置的編碼格式進(jìn)行編碼。所以自動(dòng)編碼為utf-8,接受頁(yè)面正常接受就可以了。但我認(rèn)為真正的編碼過(guò)程是,tomcat又要根據(jù)

8、hreads="75"enableLookups="false"redirectPort="8443"acceptCount="100"debug="0"connectionTimeout="20000"useBodyEncodingForURI="true"disableUploadTimeout="true"URIEncoding=”UTF-8”/>里面所設(shè)置的URIEncoding=”UTF-

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。