溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql插入中文數(shù)據(jù)變成問號如何解決

發(fā)布時間:2023-05-09 14:58:40 來源:億速云 閱讀:149 作者:zzz 欄目:MySQL數(shù)據(jù)庫

本文小編為大家詳細(xì)介紹“mysql插入中文數(shù)據(jù)變成問號如何解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“mysql插入中文數(shù)據(jù)變成問號如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

mysql插入中文數(shù)據(jù)變成問號

第一步:首先檢驗一下你自己的代碼基本配置

1.Jdbc.properties數(shù)據(jù)庫配置文件后面是不是加了characterEncoding=utf-8,如下圖所示:

mysql插入中文數(shù)據(jù)變成問號如何解決

發(fā)現(xiàn)沒有的話別傻看著,趕緊加起來

2.web.xml有沒有配置編碼過濾器,就像是這種

mysql插入中文數(shù)據(jù)變成問號如何解決

沒有的話你自己看著辦,嘿嘿,為了方便你們復(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)上面兩個文件都沒有問題的話,我們就來看看這個配置文件啦.

1.看數(shù)據(jù)庫編碼格式

先登錄服務(wù)器,進到你的數(shù)據(jù)庫,登錄數(shù)據(jù)庫命令(下面的數(shù)據(jù)庫名指的是你創(chuàng)建的數(shù)據(jù)庫名稱,比如說test):

mysql -u root -p 數(shù)據(jù)庫名

然后執(zhí)行下面的命令查看你數(shù)據(jù)庫的編碼格式

show variables like &lsquo;char%&rsquo;;

mysql插入中文數(shù)據(jù)變成問號如何解決

就是這個latin1在作怪,那么這個問題怎么解決呢?不要心急往下看.

2.修改mysql內(nèi)部配置文件

先聲明一下,最新下載的官網(wǎng)mysql安裝包貌似都是沒有my.ini文件,但是一定有my.cnf文件,這個時候你就應(yīng)該去你服務(wù)器看下在哪,當(dāng)然一般都在根目錄下的etc/下面。

命令行:vim my.cnf

mysql插入中文數(shù)據(jù)變成問號如何解決

【核心】執(zhí)行i命令進入編輯模式,在[mysqlid]下面新增下面一句話,也就是漢字編碼格式兼容

character-set-server=utf8

mysql插入中文數(shù)據(jù)變成問號如何解決

:wq命令保存并退出。

3.重啟mysql大功告成

我的是在根目錄的bin下面執(zhí)行這兩個實現(xiàn)停啟

systemctl stop mysqld.service
systemctl start mysqld.service

mysql插入中文數(shù)據(jù)變成問號如何解決

然后你可以很自豪的登錄mysql,執(zhí)行上面這個命令查看你數(shù)據(jù)庫的編碼格式

show variables like ‘char%';

mysql插入中文數(shù)據(jù)變成問號如何解決

是不是很驚喜很意外,哈哈哈哈。

最終經(jīng)過不泄的努力,總算是把這個中文數(shù)據(jù)錄入進去了,哈哈哈哈,真服自己,都想給自己轉(zhuǎn)個錢啥的,問號什么的可以滾一邊去了。

mysql插入中文數(shù)據(jù)變成問號如何解決

問題解決

存入mysql的漢字變成問號

項目場景

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ù)庫后漢字變成????

mysql插入中文數(shù)據(jù)變成問號如何解決

原因分析:

連接數(shù)據(jù)庫的設(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ù)變成問號如何解決

讀到這里,這篇“mysql插入中文數(shù)據(jù)變成問號如何解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI