昨晚寫了一個小Demo,通過 servlet 向 mysql?中添加數(shù)據(jù)瘫寝,在 dao 層使用的是 DBUtils 操作的數(shù)據(jù)庫爵政,可是在添加時偏偏出現(xiàn)了中文亂碼問題,如下:
添加頁面:
點擊“添加商品”按鈕后钢悲,出現(xiàn)中文亂碼問題:
問題分析:
1. 難道是 servlet 在接收時沒有設置編碼格式点额?
2. 難道是數(shù)據(jù)傳輸錯誤?
3. 難道是瀏覽器響應時編碼問題莺琳?
排查:
1.無論是在添加商品的 servlet 中還是在重定向的 servlet 中都設置了編碼格式:
//設置編碼格式
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
2.在 dao 層進行打印还棱,輸入的中文均可以正確打印惭等;
3.如果是瀏覽器響應時的編碼問題珍手,那么后面的“修改 | 刪除”字段也會亂碼,所以排除辞做。
那到底是什么原因呢琳要?看一下配置文件:
難道是配置文件問題?凭豪?
解決辦法:
在 c3p0.jdbcUrl 路徑的 web14 后面添加
“?useUnicode=true&characterEncoding=utf-8”焙蹭,
這樣,問題就解決了嫂伞!
看效果:
問題解決孔厉!