小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

mysql亂碼關(guān)鍵處理總結(jié) - SSH - 周老師科研站

 炎之冰 2009-09-11

mysql亂碼處理總結(jié):

      (1)java中處理中文字符正常,在cmd client中顯示亂碼是字符集的問題.

      (2)字段長度設(shè)置夠長,但插入中文字符時(shí)提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column錯(cuò)誤是字符集的問題.

      (3)亂碼問題歸根到底是字符集的問題,那就從字符集設(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ù)庫目錄下的db.opt配置文件

default-character-set=gbk
default-collation=gbk_chinese_ci

(3)數(shù)據(jù)庫連接串中指定字符集

URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk 注:在mysql4.1.0版 要加useUnicode=true&characterEncoding=gbk 如果是5.0版以上的,加不加都是沒有關(guān)系的!

(4)在創(chuàng)建數(shù)據(jù)庫時(shí)指定字符集

create database yourDB CHARACTER SET gbk;

(5)在dos命令上要設(shè)置

set names gbk


      好了,經(jīng)過檢查上面四個(gè)方面的設(shè)置,應(yīng)該 OK 了!不會(huì)出現(xiàn)諸如
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column等問題.




Mysql中文亂碼解決
原來常常在群里看到mysql的亂碼問題,但是由于本人一直在用oracle和sql server所以沒多在乎,昨天用了用mysql結(jié)果就遇到了傳說中的亂碼…..?,F(xiàn)在我們來講講mysql的亂碼問題。首先你進(jìn)入的你mysql
用show variables查看


這里可以查看到你的字符集,character_set_server是服務(wù)器編碼?,F(xiàn)在我們默認(rèn)的是latin1要改變服務(wù)器的編碼必須重新啟動(dòng)服務(wù)器,我們先用mysqladmin –uroot shutdown關(guān)閉服務(wù)器,然后mysqld –C GBK啟動(dòng)服務(wù)器 –C是character_set_server的一個(gè)簡寫(可以也可以寫成mysqld –character_set_server gbk).這樣修改以后我們?cè)龠M(jìn)入mysql查看就會(huì)顯示:

這樣我們就把服務(wù)器和數(shù)據(jù)庫的編碼改為了GBK。
現(xiàn)在我們就可以插入中文字符串了,但是為什么有時(shí)間還是會(huì)顯示
Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'name' at row 1
這是因?yàn)槟阒皇切薷牧薽ysql的服務(wù)器的字符編碼,并沒有修改已經(jīng)有數(shù)據(jù)庫的編碼,這時(shí)候你需要手動(dòng)的把data目錄下的數(shù)據(jù)庫中的db.opt中的編碼改為
default-character-set=gbk
default-collation=gbk_chinese_ci
這樣修改以后你在重啟服務(wù)器就可以插入中文了。
但是這時(shí)候還有個(gè)問題就是在你應(yīng)用程序當(dāng)中顯示的是中文字符,但是在命令窗口還是亂碼。
這時(shí)候你注意我們上面圖中的character_set_client字符還是latin1當(dāng)然顯示的是亂碼咯喲。所以你進(jìn)入mysql客戶端程序的時(shí)候因該把客戶端默認(rèn)的編碼改為gbk才能顯示正常。
你可以在mysql里修改,也可以在登陸的時(shí)候mysql –uroot –default-character-set=gbk修改
如此以來就解決了中文問題了。
我剛開始的時(shí)候在程序中加入了一個(gè)characterEncoding變量(下圖),但是想來想去都覺得這個(gè)變量沒什么用,所以后來去掉也能顯示正常。
jdbc:mysql://127.0.0.1:3306/ee?characterEncoding=gbk"

總結(jié)下mysql的亂碼問題最好還是設(shè)置數(shù)據(jù)庫的時(shí)候就把服務(wù)器編碼和數(shù)據(jù)庫編碼都設(shè)置長gbk,還有就是注意查看系統(tǒng)變量。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多