共計(jì) 1764 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
本文丸趣 TV 小編為大家詳細(xì)介紹“mysql 插入中文數(shù)據(jù)變成問號(hào)如何解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“mysql 插入中文數(shù)據(jù)變成問號(hào)如何解決”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
mysql 插入中文數(shù)據(jù)變成問號(hào)
第一步:首先檢驗(yàn)一下你自己的代碼基本配置
1.Jdbc.properties 數(shù)據(jù)庫(kù)配置文件后面是不是加了 characterEncoding=utf-8,如下圖所示:
發(fā)現(xiàn)沒有的話別傻看著,趕緊加起來(lái)
2.web.xml 有沒有配置編碼過濾器,就像是這種
沒有的話你自己看著辦,嘿嘿,為了方便你們復(fù)制在下面寫一下(是不是很貼心)
!-- 配置編碼過濾器 --
filter
filter-name characterEncodingFilter /filter-name
filter-class org.springframework.web.filter.CharacterEncodingFilter /filter-class
init-param
param-name encoding /param-name
param-value utf-8 /param-value
/init-param
/filter
第二步:當(dāng)你發(fā)現(xiàn)上面兩個(gè)文件都沒有問題的話,我們就來(lái)看看這個(gè)配置文件啦.
1. 看數(shù)據(jù)庫(kù)編碼格式
先登錄服務(wù)器,進(jìn)到你的數(shù)據(jù)庫(kù),登錄數(shù)據(jù)庫(kù)命令(下面的數(shù)據(jù)庫(kù)名指的是你創(chuàng)建的數(shù)據(jù)庫(kù)名稱,比如說(shuō) test):
mysql -u root -p 數(shù)據(jù)庫(kù)名
然后執(zhí)行下面的命令查看你數(shù)據(jù)庫(kù)的編碼格式
show variables like lsquo;char% rsquo;;
就是這個(gè) latin1 在作怪,那么這個(gè)問題怎么解決呢?不要心急往下看.
2. 修改 mysql 內(nèi)部配置文件
先聲明一下,最新下載的官網(wǎng) mysql 安裝包貌似都是沒有 my.ini 文件,但是一定有 my.cnf 文件,這個(gè)時(shí)候你就應(yīng)該去你服務(wù)器看下在哪,當(dāng)然一般都在根目錄下的 etc/ 下面。
命令行:vim my.cnf
【核心】執(zhí)行 i 命令進(jìn)入編輯模式,在 [mysqlid] 下面新增下面一句話,也就是漢字編碼格式兼容
character-set-server=utf8
:wq 命令保存并退出。
3. 重啟 mysql 大功告成
我的是在根目錄的 bin 下面執(zhí)行這兩個(gè)實(shí)現(xiàn)停啟
systemctl stop mysqld.service
systemctl start mysqld.service
然后你可以很自豪的登錄 mysql,執(zhí)行上面這個(gè)命令查看你數(shù)據(jù)庫(kù)的編碼格式
show variables like ‘char%
是不是很驚喜很意外,哈哈哈哈。
最終經(jīng)過不泄的努力,總算是把這個(gè)中文數(shù)據(jù)錄入進(jìn)去了,哈哈哈哈,真服自己,都想給自己轉(zhuǎn)個(gè)錢啥的,問號(hào)什么的可以滾一邊去了。
問題解決
存入 mysql 的漢字變成問號(hào)項(xiàng)目場(chǎng)景
mySql 5.7
java
配置文件:spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useSSL=false
插入操作:
@Insert(INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription}) )
int insert(Food food);
問題描述
存入數(shù)據(jù)庫(kù)后漢字變成????
原因分析:
連接數(shù)據(jù)庫(kù)的設(shè)置需要制定字符集
解決方案
解決方法:數(shù)據(jù)源里面增加 useUnicode=true characterEncoding=UTF-8
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true characterEncoding=UTF-8 useSSL=false
wenti
讀到這里,這篇“mysql 插入中文數(shù)據(jù)變成問號(hào)如何解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。
向 AI 問一下細(xì)節(jié)丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!