Servlet中文亂碼問題解決方案解析
一、出現(xiàn)亂碼的原因
由于瀏覽器默認(rèn)使用UTF-8碼表進(jìn)行編碼,而servlet使用ISO-8859-1碼表進(jìn)行編碼,傳輸和接收方編碼不一致導(dǎo)致亂碼的產(chǎn)生。
二、亂碼的類型以及解決辦法
1、 response亂碼
一、出現(xiàn)亂碼的原因
由于瀏覽器默認(rèn)使用UTF-8碼表進(jìn)行編碼,而servlet使用ISO-8859-1碼表進(jìn)行編碼,傳輸和接收方編碼不一致導(dǎo)致亂碼的產(chǎn)生。
二、亂碼的類型以及解決辦法
1、 response亂碼
response.setHeader("content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
第一句目的是為了指定瀏覽器以UTF-8碼表打開服務(wù)器發(fā)出的數(shù)據(jù)
第二句目的是設(shè)置response使用的碼表,控制response以UTF-8碼表向?yàn)g覽器寫入數(shù)據(jù)(必須寫在方法中第一行)
或者:
OutputStream out=response.getOutputStream();
out.write("<metahttp-equiv='content-type' content='text/html;charset=UTF-8'>".getBytes());
通過字節(jié)流向?yàn)g覽器寫入meta標(biāo)簽控制瀏覽器使用的碼表
2、 request亂碼
request請求分為post和get,分別有不同的方法解決
①post請求亂碼
request.setCharacterEncoding("UTF-8");
String username=request.getParameter("username");
username=new String(username.getBytes("iso8859-1"),"UTF-8");
字節(jié)流從表單中提取的參數(shù)先用iso8859-1解析,再使用UTF-8碼表轉(zhuǎn)化寫入。
或:如果是通過超鏈接傳遞參數(shù),超鏈接是get提交,必須手工修改編碼
3、 瀏覽器顯示亂碼
第一種:
response.setContentType("text/html;charset=UTF-8");
第二種:
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/html;charset=UTF-8");
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作,結(jié)合實(shí)例形式分析了Bean定義中的SpEL表達(dá)式語言操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12
使用Java接收和處理OpenTelemetry數(shù)據(jù)的完整指南
在現(xiàn)代分布式系統(tǒng)中,OpenTelemetry 成為了一種常見的標(biāo)準(zhǔn),用于跟蹤和監(jiān)控應(yīng)用程序的性能和行為,OTLP是 OpenTelemetry 社區(qū)定義的一種數(shù)據(jù)傳輸協(xié)議,文將介紹如何使用 Java 編寫代碼來接收和處理 OTLP 數(shù)據(jù),需要的朋友可以參考下2024-04-04
Spring依賴注入中的@Resource與@Autowired詳解
這篇文章主要介紹了Spring依賴注入中的@Resource與@Autowired詳解,提到Spring依賴注入,大家最先想到應(yīng)該是@Resource和@Autowired,對于Spring為什么要支持兩個(gè)這么類似的注解卻未提到,屬于知其然而不知其所以然,本文就來做詳細(xì)講解,需要的朋友可以參考下2023-09-09
java接收文件流+response.body()調(diào)用兩次問題(分別接收文件和對象)
這篇文章主要介紹了java接收文件流+response.body()調(diào)用兩次問題(分別接收文件和對象),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
IDEA里找不到Maven的有效解決辦法(小白超詳細(xì))
這篇文章主要給大家介紹了關(guān)于IDEA里找不到Maven的有效解決辦法,文中通過圖文將解決的辦法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Java簡單實(shí)現(xiàn)對一串?dāng)?shù)字采用相應(yīng)的加密策略后傳輸
下面小編就為大家?guī)硪黄狫ava簡單實(shí)現(xiàn)對一串?dāng)?shù)字采用相應(yīng)的加密策略后傳輸。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09

