万网mysql中文乱码_Linux下MySQL出现乱码的解决方法-阿里云开发者社区
開發(fā)環(huán)境
cent?os 6.5
mysql
springboot
duird
故障描述
本地開發(fā)環(huán)境沒有任何問題,上傳到服務(wù)器后發(fā)現(xiàn)提交的表單內(nèi)容只要是中文直接變成 ???
解決方式
錯(cuò)誤嘗試:
一開始懷疑是代碼的問題,于是從百度上找了一些方法,但是很多都是無效的,比如配置
都沒有解決問題,后來經(jīng)過調(diào)試發(fā)現(xiàn),java代碼是沒有問題的,直到插入數(shù)據(jù)庫的最后一步,傳遞過來的數(shù)值還是中文,于是查看了mysql編碼發(fā)現(xiàn)了問題。
正確的解決方式:
很多時(shí)間mysql安裝時(shí)指定的編碼都是默認(rèn)編碼(latin1),而我們開發(fā)一般都是用UTF8的編碼,我們可以通過 show variables like 'character%';?查看數(shù)據(jù)庫編碼
從網(wǎng)上看到可以通過執(zhí)行
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
結(jié)果在嘗試執(zhí)行上面查看編碼的語句后發(fā)現(xiàn)確實(shí)所有編碼已經(jīng)變成了UTF8,但是程序提交后還是亂碼,根本解決不了問題,其實(shí)這只是一種假象。此種方式只在當(dāng)前狀態(tài)下有效,當(dāng)重啟數(shù)據(jù)庫服務(wù)后失效。
這里特別申明下這種方式,不要無故采坑
下面真正的干活就要來了,如果需要一勞永逸的解決mysql的亂碼還是需要從my.cnf下手
首先找到my.cnf在服務(wù)器中的位置(/etc/my.cnf,每個(gè)人服務(wù)器可能目錄不同,這里只是我的服務(wù)器路徑),執(zhí)行vim my.cnf
增加圖中畫紅線的兩部分代碼即可
編輯完畢后 qw!?強(qiáng)制退出
重啟mysql服務(wù)?service mysql restart,出現(xiàn)
然后再回到程序中執(zhí)行form表單提交,發(fā)現(xiàn)中文亂碼的問題就已經(jīng)完美解決了
這里也正常了,好了?亂碼的問題到此就已經(jīng)完美解決了。開開心心編碼,快快樂樂生活。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的万网mysql中文乱码_Linux下MySQL出现乱码的解决方法-阿里云开发者社区的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python下载过程中最后一步执行ope
- 下一篇: mysql中存储引擎是啥_mysql中的