2018-10-17
閱讀量:
1468
Mysql中查詢出的結(jié)果是亂碼,怎么解決?
mysql中出現(xiàn)亂碼是由于字符集沒有設(shè)置為utf8,我們可以從以下幾個方面來分析問題。
查看字符集設(shè)置的命令:
show variables like '%char%';
查看服務(wù)器端和客戶端字符集的當(dāng)前設(shè)置。
Mysql中涉及的幾個字符集mysql服務(wù)器端有:
character-set-server/default-character-set:服務(wù)器字符集,默認(rèn)情況下所采用的。
character-set-database:數(shù)據(jù)庫字符集。
character-set-table:數(shù)據(jù)庫表字符集。
優(yōu)先級依次增加。所以一般情況下只需要設(shè)置character-set-server,而在創(chuàng)建數(shù)據(jù)庫和表時不特別指定字符集,這樣統(tǒng)一采用character-set-server字符集。
Mysql客戶端有:
character-set-client:客戶端的字符集??蛻舳四J(rèn)字符集。當(dāng)客戶端向服務(wù)器發(fā)送請求時,請求以該字符集進(jìn)行編碼。
character-set-results:結(jié)果字符集。服務(wù)器向客戶端返回結(jié)果或者信息時,結(jié)果以該字符集進(jìn)行編碼。
在客戶端,如果沒有定義character-set-results,則采character-set-client字符集作為默認(rèn)的字符集。所以只需要設(shè)置character-set-client字符集。
此問題是服務(wù)器默認(rèn)字符集不是utf8且創(chuàng)建表時沒有指定字符集導(dǎo)致的。通過命令set character_set-table=utf8; 就可以正常顯示!






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論
1條評論