今天碰到phpmyadmin導(dǎo)入sql文件,中文內(nèi)容亂碼導(dǎo)致導(dǎo)入出錯(cuò)問(wèn)題,已解決,總結(jié)出phpmyadmin的編碼設(shè)置問(wèn)題如下:
一、phpmyadmin設(shè)置新建數(shù)據(jù)庫(kù)的默認(rèn)編碼為gbk或utf8編碼的方法
1.先查看本mysql的各項(xiàng)charset設(shè)置,運(yùn)行sql查詢(xún)語(yǔ)句:
show variables like 'character%';

查詢(xún)結(jié)果中:
character_set_database:代表當(dāng)前所在數(shù)據(jù)庫(kù)的編碼,這里是latin1;
character_set_server代表默認(rèn)的新建數(shù)據(jù)庫(kù)編碼,還是latin1;
也就是說(shuō),我的當(dāng)前所在數(shù)據(jù)庫(kù)編碼是lantin1,而如果我新建一個(gè)數(shù)據(jù)庫(kù),默認(rèn)編碼是latin1。
2.根據(jù)character_set_database和character_set_server的值,我們就好辦了。運(yùn)行以下兩條sql語(yǔ)句,即可設(shè)置完畢:
set character_set_server=utf8; //設(shè)置默認(rèn)新建數(shù)據(jù)庫(kù)編碼為utf8
alter database testdb character set utf8; //更改現(xiàn)有數(shù)據(jù)庫(kù)編碼
注意:“set character_set_server=uft8”只對(duì)當(dāng)前連接或者查詢(xún)有效,果想新建數(shù)據(jù)庫(kù),請(qǐng)將create database語(yǔ)句寫(xiě)在同一查詢(xún)中,否則無(wú)效。
若想永久生效,將“character_set_server = utf8”寫(xiě)入mysql的配置文件/etc/my.cnf即可。
二、phpmyadmin導(dǎo)入數(shù)據(jù)庫(kù)時(shí)gbk或utf8編碼的設(shè)置(解決導(dǎo)入數(shù)據(jù)庫(kù)中文亂碼問(wèn)題)
1.首先確保導(dǎo)入的sql文件中的中文不是亂碼,此sql文件可以是utf8編碼也可以是gb2312編碼;
2.在sql文件的最開(kāi)頭添加set names utf8或者gb2312;(必須與你文件的編碼相同,如果你想導(dǎo)入后是utf8,你的文件編碼就要是utf8,如果想導(dǎo)入后是gbk/gb2312,你的文件編碼就要是gbk/gb2312);
3.通過(guò)phpmyadmin導(dǎo)入界面直接導(dǎo)入即可;
4.文件的字符集,mysql字符集,mysql連接校對(duì)等幾?字符集設(shè)置可以不用管,比如我這里mysql字符集,mysql連接校對(duì)分別是latin1和utf8_general_ci,不影響我的導(dǎo)入后的字符集和編碼。