(63)-08-06-Servlet漢字亂碼解決方案_第1頁
(63)-08-06-Servlet漢字亂碼解決方案_第2頁
(63)-08-06-Servlet漢字亂碼解決方案_第3頁
(63)-08-06-Servlet漢字亂碼解決方案_第4頁
(63)-08-06-Servlet漢字亂碼解決方案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

中文亂碼解決方案主要內(nèi)容request中文亂碼及其解決方案response中文亂碼及其解決方案四種常見編碼ISO-8859-1:單字節(jié)編碼,兼容ASCII碼,相當于ASCII碼的擴展,無法表示中文字符,系統(tǒng)默認編碼。GBK:雙字節(jié)編碼,國標碼,可以表示繁體字和簡體字,而GB2312編碼只能表示簡體字,GBK兼容GB2312編碼。四種常見編碼UNICODE:定長雙字節(jié)編碼,可以表示所有語言的字符,不兼容任何編碼,很多軟件內(nèi)部是使用unicode編碼來處理的。UTF:不定長編碼,可以表示所有語言的字符,常用UTF-8,兼容iso8859-1編碼,UTF編碼會比UNICODE編碼節(jié)省。Java對字符編碼的處理getBytes(charset)其作用是將字符串所表示的字符按照charset進行編碼,并以字節(jié)方式表示。newString(charset)其作用是將字節(jié)數(shù)組按照charset編碼進行組合識別,最后轉換為unicode存儲。setCharacterEncoding()該函數(shù)用來設置http請求或者響應的編碼。亂碼產(chǎn)生的原因無論數(shù)據(jù)是在傳輸還是存儲等過程中,都是以字節(jié)的方式在運行,但是數(shù)據(jù)內(nèi)容是經(jīng)過編碼后再進行傳輸?shù)?。由于瀏覽器跟服務器端在編碼和解碼時采用了不同的碼表,所以會產(chǎn)生亂碼。request和response的中文亂碼response亂碼:服務器向瀏覽器發(fā)送的數(shù)據(jù)包含中文字符,瀏覽器中顯示的是亂碼。request亂碼:瀏覽器向服務器發(fā)送的請求參數(shù)中包含中文字符,服務器獲取到的請求參數(shù)的值是亂碼。response亂碼服務器發(fā)給瀏覽器的數(shù)據(jù)默認是按照ISO-8859-1編碼,瀏覽器接收到數(shù)據(jù)后按照當前頁面的顯示編碼進行解碼后顯示,如果瀏覽器的當前頁面編碼不是服務器的編碼,就出現(xiàn)亂碼。response亂碼解決方案對于response亂碼,只需要在服務器端指定一個編碼方式,然后通知瀏覽器按照這個編碼方式進行解碼就可以了。response亂碼解決方案(一)response.setCharacterEncoding("UTF-8");//設置服務器端編碼。該方法必須在response.getWriter()之前進行設置才會生效。response.setHeader("content-type","text/html;charset=utf-8");//通知瀏覽器,服務器發(fā)送的數(shù)據(jù)格式是text/html,并要求瀏覽器使用utf-8進行解碼。response亂碼解決方案(二)response.setContentType("text/html;charset=utf-8");//通知瀏覽器服務器發(fā)送的數(shù)據(jù)格式是text/html,設置服務器采用utf-8編碼,并要求瀏覽器使用utf-8進行解碼。request亂碼從瀏覽器發(fā)起的訪問方式有三種:在地址欄直接輸入URL訪問(get請求)點擊超鏈接訪問

(get請求)提交表單訪問(get請求和post請求)

request亂碼在服務器端,通過request.setCharacterEncoding("UTF-8")即可設置服務器解碼為UTF-8。但是它只對請求體(post請求)里面的參數(shù)有效,如果參數(shù)跟在請求行中的URL后邊(get請求),它就無能為力了。因此請求方式不同,解決亂碼的方案也不同。request亂碼解決方案post方式下的中文亂碼post方式提交的參數(shù),存在請求體中,瀏覽器將參數(shù)按照當前頁面的顯示編碼進行編碼,頁面的編碼方式一般情況下已經(jīng)被設置成了UTF-8,只需要修改服務端解碼方式,與瀏覽器頁面編碼方式一致即可。request.setCharacterEncoding(“UTF-8”);//在獲取參數(shù)之前執(zhí)行request亂碼解決方案get方式下的中文亂碼Stringname=request.getParameter("name");//得到亂碼數(shù)據(jù)name=newString(name.getBytes(“ISO-8859-1"),"utf-8");//將得到的數(shù)據(jù)進行ISO-8859-1方式解碼,然后把得到的字節(jié)再通過UTF-8編碼,得到正常的na

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論