近來網(wǎng)上出現(xiàn)了很多關(guān)于MySQL導(dǎo)入數(shù)據(jù)庫中文變成問號的問題,這讓很多使用MySQL的開發(fā)人員非常苦惱。本文將為大家解析這個(gè)問題并提供解決方案。
首先,這個(gè)問題一般是由于數(shù)據(jù)庫字符集不對稱造成的。MySQL的默認(rèn)字符集是latin1,這種字符集僅僅支持ISO-8859-1編碼的字符,而不支持UTF-8等其他編碼的字符。
SHOW VARIABLES LIKE 'character%';
通過上述代碼可以查看當(dāng)前MySQL數(shù)據(jù)庫的字符集設(shè)置。如果同時(shí)出現(xiàn)character_set_client, character_set_connection 和 character_set_results 三項(xiàng)的值為latin1,那么就有可能會(huì)出現(xiàn)中文變成問號的問題。
解決方案如下:
- 方法一:修改MySQL配置文件my.cnf
[client]
default-character-set = utf8
[mysqld]
init_connect='SET NAMES utf8'
collation_server=utf8_general_ci
character_set_server=utf8
skip-character-set-client-handshake
修改完以上配置后,重啟MySQL即可。
- 方法二:使用命令修改
SET NAMES UTF8;
通過以上命令將當(dāng)前連接的字符集統(tǒng)一設(shè)置為UTF-8。
如果您還有任何問題或疑問,可以訪問MySQL官網(wǎng)或者M(jìn)ySQL社區(qū)尋求幫助。