新聞中心
對(duì)正確解決JSP中的亂碼問(wèn)題(解決tomcat下中文亂碼問(wèn)題 )中我們也對(duì)MySQL亂碼問(wèn)題進(jìn)行了詳細(xì)說(shuō)明,相信你看完之后會(huì)對(duì)JSP里的一些亂碼問(wèn)題有所解決,不過(guò)還是有些人的MySQL亂碼問(wèn)題沒(méi)有得到解決。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比太和網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式太和網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋太和地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
包括我自己,所以又找了一些資料,希望這次能完全解決MySQL數(shù)據(jù)庫(kù)的亂碼問(wèn)題。
MySQL 亂碼解決方案的第一種方法,很精辟的總結(jié):
經(jīng)常更換虛擬主機(jī),而各個(gè)服務(wù)商的MySQL版本不同,當(dāng)導(dǎo)入數(shù)據(jù)后,總會(huì)出現(xiàn)亂碼等無(wú)法正常顯示的問(wèn)題,查了好多資料,總結(jié)出自己的一點(diǎn)技巧:
WINDOWS 下導(dǎo)入應(yīng)該這樣
使用MySQL的命令
在DOS命令下進(jìn)入MySQL的bin目錄下,輸入MySQL -uroot -p密碼 數(shù)據(jù)庫(kù)名稱<要恢復(fù)的數(shù)據(jù)庫(kù), 例如我們要把D盤的一個(gè)名稱為test.sql的數(shù)據(jù)庫(kù)恢復(fù)到本地的test2這個(gè)數(shù)據(jù)庫(kù),那么就這樣:
MySQL -uroot -p密碼 test2以前的國(guó)外主機(jī)用的MySQL是4.x系列的,感覺(jué)還比較好,都無(wú)論GBK和UTF-8都沒(méi)有亂碼,沒(méi)想到新的主機(jī)的MySQL是5.0版本的,導(dǎo)入數(shù)據(jù)后,用Php讀出來(lái)全是問(wèn)號(hào),亂碼一片,記得我以前也曾經(jīng)有過(guò)一次切換出現(xiàn)亂碼的經(jīng)驗(yàn),原因肯定是MySQL版本之間的差異問(wèn)題。
只好查資料,發(fā)現(xiàn)了一個(gè)解決方法,就是在MySQL_connect后面加一句SET NAMES UTF8,即可使得UTF8的數(shù)據(jù)庫(kù)消除亂碼,對(duì)于GBK的數(shù)據(jù)庫(kù)則使用SET NAMES GBK,代碼如下:
- $ mysql _mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
- mysql_query("SET NAMES 'GBK'");
數(shù)據(jù)庫(kù)字符集為utf-8
連接語(yǔ)句用這個(gè)
- mysql_query("SET NAMES 'UTF8'");
- mysql_query("SET CHARACTER SET UTF8");
- mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
還有個(gè)方法就是,如果你自己的機(jī)器的話,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5這兩個(gè)版本中有效
mysql 亂碼解決方案的第二個(gè)方法:很不錯(cuò)的解說(shuō),可以試一下
mysql亂碼處理總結(jié):
(1)java中處理中文字符正常,在cmd client中顯示亂碼是字符集的問(wèn)題.
(2)字段長(zhǎng)度設(shè)置夠長(zhǎng),但插入中文字符時(shí)提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column錯(cuò)誤是字符集的問(wèn)題.
(3)亂碼問(wèn)題歸根到底是字符集的問(wèn)題,那就從字符集設(shè)置方面考慮,不外乎下面幾個(gè)方面:server,client,database,connection,results.
解決辦法:
(1)修改 my.ini(MySQL Server Instance Configuration 文件)
- # CLIENT SECTION
- [client]
- port=3306
- [mysql]
- default-character-set=gbk
- # SERVER SECTION
- [mysqld]
- default-character-set=gbk
(2)修改data目錄中相應(yīng)數(shù)據(jù)庫(kù)目錄下的db.opt配置文件
- default-character-set=gbk
- default-collation=gbk_chinese_ci
(3)數(shù)據(jù)庫(kù)連接串中指定字符集
URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk
注:在mysql4.1.0版 要加useUnicode=true&characterEncoding=gbk 如果是5.0版以上的,加不加都是沒(méi)有關(guān)系的!
(4)在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定字符集
- create database yourDB CHARACTER SET gbk;
(5)在dos命令上要設(shè)置
- set names gbk
好了,經(jīng)過(guò)檢查上面四個(gè)方面的設(shè)置,應(yīng)該 OK 了!不會(huì)出現(xiàn)諸如com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column等問(wèn)題.
以上的相關(guān)內(nèi)容就是對(duì)mysql 亂碼解決方案的介紹,望你能有所收獲。
分享文章:MySQL亂碼解決的兩大方案介紹
網(wǎng)頁(yè)URL:http://m.fisionsoft.com.cn/article/cogsdpd.html


咨詢
建站咨詢
