您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“mysql插入中文數據變成問號如何解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“mysql插入中文數據變成問號如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
第一步:首先檢驗一下你自己的代碼基本配置
1.Jdbc.properties數據庫配置文件后面是不是加了characterEncoding=utf-8,如下圖所示:
發現沒有的話別傻看著,趕緊加起來
2.web.xml有沒有配置編碼過濾器,就像是這種
沒有的話你自己看著辦,嘿嘿,為了方便你們復制在下面寫一下(是不是很貼心)
<!-- 配置編碼過濾器 --> <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>
第二步:當你發現上面兩個文件都沒有問題的話,我們就來看看這個配置文件啦.
1.看數據庫編碼格式
先登錄服務器,進到你的數據庫,登錄數據庫命令(下面的數據庫名指的是你創建的數據庫名稱,比如說test):
mysql -u root -p 數據庫名
然后執行下面的命令查看你數據庫的編碼格式
show variables like ‘char%’;
就是這個latin1在作怪,那么這個問題怎么解決呢?不要心急往下看.
2.修改mysql內部配置文件
先聲明一下,最新下載的官網mysql安裝包貌似都是沒有my.ini文件,但是一定有my.cnf文件,這個時候你就應該去你服務器看下在哪,當然一般都在根目錄下的etc/下面。
命令行:vim my.cnf
【核心】執行i命令進入編輯模式,在[mysqlid]下面新增下面一句話,也就是漢字編碼格式兼容
character-set-server=utf8
:wq命令保存并退出。
3.重啟mysql大功告成
我的是在根目錄的bin下面執行這兩個實現停啟
systemctl stop mysqld.service systemctl start mysqld.service
然后你可以很自豪的登錄mysql,執行上面這個命令查看你數據庫的編碼格式
show variables like ‘char%';
是不是很驚喜很意外,哈哈哈哈。
最終經過不泄的努力,總算是把這個中文數據錄入進去了,哈哈哈哈,真服自己,都想給自己轉個錢啥的,問號什么的可以滾一邊去了。
問題解決
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);
存入數據庫后漢字變成????
原因分析:
連接數據庫的設置需要制定字符集
解決方法:數據源里面增加 useUnicode=true&characterEncoding=UTF-8
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false
wenti
讀到這里,這篇“mysql插入中文數據變成問號如何解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。