關(guān)于servlet向mysql添加數(shù)據(jù)時(shí)中文亂碼問(wèn)題的解決
前言
最近寫了一個(gè)小Demo,通過(guò) servlet 向 mysql 中添加數(shù)據(jù),在 dao 層使用的是 DBUtils 操作的數(shù)據(jù)庫(kù),可是在添加時(shí)偏偏出現(xiàn)了中文亂碼問(wèn)題,如下:
添加頁(yè)面:

點(diǎn)擊“添加商品”按鈕后,出現(xiàn)中文亂碼問(wèn)題:

問(wèn)題分析:
1. 難道是 servlet 在接收時(shí)沒(méi)有設(shè)置編碼格式?
2. 難道是數(shù)據(jù)傳輸錯(cuò)誤?
3. 難道是瀏覽器響應(yīng)時(shí)編碼問(wèn)題?
排查:
1.無(wú)論是在添加商品的 servlet 中還是在重定向的 servlet 中都設(shè)置了編碼格式:
//設(shè)置編碼格式
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
2.在 dao 層進(jìn)行打印,輸入的中文均可以正確打??;
3.如果是瀏覽器響應(yīng)時(shí)的編碼問(wèn)題,那么后面的“修改 | 刪除”字段也會(huì)亂碼,所以排除。
那到底是什么原因呢?看一下配置文件:

難道是配置文件問(wèn)題??
解決辦法:
在 c3p0.jdbcUrl 路徑的 web14 后面添加
“?useUnicode=true&characterEncoding=utf-8”,
這樣,問(wèn)題就解決了!
看效果:

問(wèn)題解決!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Java形參和實(shí)參的實(shí)例之Integer類型與Int類型用法說(shuō)明
這篇文章主要介紹了Java形參和實(shí)參的實(shí)例之Integer類型與Int類型用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Java8中使用流方式查詢數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Java8中使用流方式查詢數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2016-01-01
SpringBoot3 RestTemplate配置與使用詳解
本文詳細(xì)介紹了在 SpringBoot 3.x 中如何配置和使用 RestTemplate,包括基本配置、高級(jí)配置以及各種使用場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2024-12-12

