資源描述:
《解析Java中文亂碼的處理方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、引自程序猶如人生的博客】為什么說亂碼是中國程序員無法避免的話題呢?這個首先要從編碼機制上說起,大家都是中文和英文的編碼格式不是一樣,解碼也是不一樣的!如杲中國的程序員不會遇到亂碼,那么只有使用漢語編程。漢語編程是怎么回事,我也不大淸楚,應(yīng)該是前年吧!我一朋友給我介紹漢語編程,怎么不錯不錯?當時因為學(xué)習(xí)忙沒去關(guān)注這個,等我閑了,那個朋友不弄這個,問他,他也不說不大清楚,最后口己對這個學(xué)習(xí)也不了了Z了。我寫這個不是講解中英文Z間的差距,解碼等,我是將我在這幾年工作遇到各種各樣的亂碼的解決方法,總結(jié)起來,也希望大家能把自己暈倒解決
2、亂碼的方法都說出來,咱們弄一個解決亂碼的“葵花寶典”。對于Java,由于默認的編碼方式是UNICODE,所以用中文也易出問題,常見的解決是:Strings2=newString(si.getBytes(“ISO-8859-1”),”GBK”);1、utf8解決JSP中文亂碼問題一燉說來在每個頁面的開始處,加入:<%@pagelanguage=z/java,zcontentType二〃text/html;charset二UTF-8〃pageEncoding二〃UTF-8"%><%request?setCharacterEnco
3、ding(z,UTF-8,z);%>?charset二UTF-8的作用是指定JSP向客戶端輸出的編碼方式為“UTF-8”:?pageEncodin薩〃UTF-8〃,為了讓JSP引擎能止確地解碼含有中文字符的JSP頁血,這在LINUX中很有效;?request.setCharacterEncoding(/ZUTF-8Z,);是對請求進彳亍了中文編碼。有時,這樣仍不能解決問題,還需要這樣處理一下:Stringmsg=request.getPeiramcter("message");Stringstr=newString(msg.
4、getBytes("ISO-8859T"),〃UTF-8");out.printin(st);2、Tomcat5.5中文亂碼只要jK%TOMCAT安裝目錄%/webapps'servlets-examplesWEB-TNFclassesfi1tersSetCharacterEncodingFiIter,class文件拷到你的webapp目錄/filters下,如果沒有filters目錄,就創(chuàng)建一個。2)在你的web.xml里加入如下幾行:〈filter〉SetCharacterEncodin
5、gfiIters.SetCharacterEncodingFi1ter〈/filter-class>encodingGBK〈filter-mapping>SetCharacterEncoding/*6、n>3)完成2、get方式的解決辦法1)打開tomcat的server,xml文件,找到區(qū)塊,加入如下一行:URIEncoding二”GBK”完整的應(yīng)如下:7、onnectionTimeout二〃20000"disableUp1oadTimeout二〃true"URIEncodin薩〃GBK〃/>2)重啟tomcat,一切OK。3.xmlHttpRequest中文問題頁面jsp用的GBK編碼代碼:〈%@pagecontentType=ext/html;charset二GBK〃%>javascript部分代碼:functionaddFracasReport(){varurl二〃controler?actionTd=006030l&actionF1ag=0010,z;varurlmsg
8、=〃&reportId=/,+fracasReport1.textReportld.value;//故障報告表編號varxmlHttp二Common.crcatcXMLHttpRcqucst();xmlllttp.onreadystatechange二Common.getReadyStat