JSP/Servlet --- 編碼問題

情景1

描述:jsp頁面page指定編碼爲UTF-8,在沒有任何過濾器的情況下,向servlet容器發送HTTP請求,如通過表單提交數據,傳遞的信息會被封裝在HttpServletRequest對象request裏面,若直接處理提交過來的中文字符串,會出現亂碼

<%@ page contentType="text/html; charset=UTF-8"%>
...
<form method="post" action="/ServletModel/model/UploadServlet">
    <input type="text" name="name">
    <input type="submit" value="提交"/>
</form>
...

servlet裏面

System.out.println(request.getParameter("name")); //?????全是問號
看到request裏面有一個方法是獲取編碼,但是返回值是null,說明request對象裏面是沒有設置編碼的
request.getCharacterEncoding(); //null

那麼應該就有一個set方法,應該是將傳送過來的數據進行編碼

request.setCharacterEncoding("UTF-8")

這樣就正常了,這說明之前的默認編碼方式並不是UTF-8,它並不受頁面編碼所控制。據網上資料所說默認爲ISO- 8859-1編碼

同時響應的時候也應該設置編碼,如

response.setContentType("text/html; charset=UTF-8");


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章