mysql 亂碼問(wèn)題

作為一個(gè)開(kāi)發(fā)人員,mysql亂碼想必是一個(gè)很常見(jiàn)的問(wèn)題,那么如何去解決呢?

首先,問(wèn)題有可能出現(xiàn)在數(shù)據(jù)庫(kù)上面,mysql 數(shù)據(jù)庫(kù)默認(rèn)是 latin1字符集:

3.png

由于表示latin1字符集 如果varchar字段沒(méi)有顯示指定的話也是latin1字符集:

4.png

所以我們創(chuàng)建表的時(shí)候要把表設(shè)置成utf8,如果開(kāi)始把表設(shè)置成utf8后,那么這個(gè)表里面的varchar 字段一般都是utf8格式的:


1.png

由于表是utf8格式編碼,所以默認(rèn)的varchar字段也是utf8:


2.png

這里有個(gè)問(wèn)題需要注意,就是如果開(kāi)始你的數(shù)據(jù)庫(kù)編碼是latin1,然后你插入了一些中文數(shù)據(jù),出現(xiàn)亂碼,然后此時(shí)你把數(shù)據(jù)庫(kù)和對(duì)應(yīng)字段都設(shè)置成了utf8,那么之前的亂碼是還存在的,之后的你再插入數(shù)據(jù)的時(shí)候,就不會(huì)出現(xiàn)亂碼了:

5.png

這個(gè)需要注意一下,因此,在創(chuàng)建數(shù)據(jù)庫(kù) 和表的時(shí)候就應(yīng)該把字符集設(shè)置成utf8,這樣可以減少以后的麻煩。

如果你上都弄好了,還是沒(méi)有解決的話,可能是應(yīng)用程序那邊的數(shù)據(jù)庫(kù)驅(qū)動(dòng)沒(méi)有設(shè)置編碼

jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

加上一下編碼設(shè)置就可以了

如果以上都做過(guò)了還是有問(wèn)題的話,執(zhí)行以下命令:

show variables like 'character%';
6.png

然后看看是不是有問(wèn)題,如果有問(wèn)題的話,執(zhí)行一下命令:

set names utf8;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容