當前位置:首頁 » 數據倉庫 » post資料庫亂碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

post資料庫亂碼

發布時間: 2023-05-03 20:39:40

⑴ 「JSP頁面提交後,提交的post中文是正常的,但是到達伺服器上,中文就亂碼」是怎麼回事

有以下幾種方法可以解決

1.在jsp 的java代碼執行之前寫入在 <% response.setContentType("text/html;charset=UTF-8")%> 一定要是之前,因為設了這個下面簡含代碼才開始生效。可以寫在jsp開頭。

2.在在Servlet中service方法開始部分寫入 response.setContentType("text/html;charset=UTF-8")

3.在過濾器中寫入在Servlet中 response.setContentType("text/html;charset=UTF-8") 一般都寫在過濾器中,可以減少代碼重復量

4.對於提交已經編碼的數據需要先解碼再編碼,卜首也就是樓主的方法

new String(str.getBytes("ISO8859-1"),"UTF-8") 這種方法可以解決提交時候的問題,

new String(str.getBytes("UTF-8"),"ISO8859-1") 同樣的道理解決已經編碼的數據要顯示到頁面的時候就要反著寫

還有就是項目中最好使用統一的編碼包括:文件保存的時候使用的編碼,jsp文件翻譯時使用的編碼,伺服器響應編碼,和提交編碼,還有就是資料庫的編碼。

eclipse下:jsp和class文件保存時使用編碼在文件右鍵的property選項中能找到,

jsp頁面編碼有兩個<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

pageEncoding是設的是tomcat將jsp文件翻譯成servlet程序的時候執行的翻譯編碼,而charset才是伺服器響應編碼 也就是servlet中的response.setCharacterEncoding 一般都設置成UTF-8;

提交數據的時候也需要你那樣轉碼,不過轉碼工作卻實是型咐數寫在過濾器里,可以寫代碼的減少麻煩

提交參數時候要設置request的編碼,也就是你遇到的問題,按照我前四步的說明做就可以了。