數(shù)據(jù)庫(kù)是latin1也可以存入中文的~創(chuàng)建表字段的時(shí)候,設(shè)置字段字符集為UTF-8(utf8 general)就行了
十載的上虞網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整上虞建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“上虞網(wǎng)站設(shè)計(jì)”,“上虞網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Mysql數(shù)據(jù)庫(kù)不能插入中文,一插入就報(bào)錯(cuò),是代碼輸入錯(cuò)誤造成的,解決方法如下:
1、首先使用insert語(yǔ)句,把數(shù)據(jù)插入到數(shù)據(jù)庫(kù)表里。
2、運(yùn)行后,發(fā)現(xiàn)插入語(yǔ)句報(bào)錯(cuò)了。點(diǎn)擊語(yǔ)句,查看詳情,提示說(shuō)插入的中文語(yǔ)句是不正確的字符串內(nèi)容。
3、這時(shí)右鍵點(diǎn)擊插入數(shù)據(jù)的表,然后點(diǎn)擊表設(shè)計(jì)。
4、打開(kāi)表設(shè)計(jì)界面后,點(diǎn)擊上方的Option選項(xiàng)。
5、默認(rèn)新建的表字符集用的是latin1字符集。要插入中文內(nèi)容,需要將其改成ubf8字符集。
6、除此之外,需要保存中文內(nèi)容的字段,也需要將其改成utf8字符集。
7、修改好,保存后,再次運(yùn)行插入sql語(yǔ)句,可以看到成功插入中文數(shù)據(jù)了。
1,創(chuàng)建table的時(shí)候就使用utf8編碼
舉個(gè)例子:
在每次創(chuàng)建表的時(shí)候都在最后加上 character set = utf8 就可以很好的支持中文。
2,修改已經(jīng)有的table的編碼
當(dāng)使用默認(rèn)編碼創(chuàng)建了一個(gè)table的時(shí)候,是不能支持中文的,這時(shí)候使用如下語(yǔ)句對(duì)table_name進(jìn)行修改:
此后再往這個(gè)table插入中文的時(shí)候,就可以正常存儲(chǔ)和讀取了,但不知道為什么之前的亂碼還是不能糾正,只能新插入的數(shù)據(jù)沒(méi)有問(wèn)題。
[注意] 我google了一下,有些地方說(shuō)這個(gè)命令也行,但是我測(cè)試以后并不行
alter table table_name charset=utf8; #這個(gè)語(yǔ)句并沒(méi)有讓table_name支持中文
中文不管用什么字符集來(lái)表示(GBK\GB2312\UTF8等),最終都是字節(jié)的整數(shù)倍,而latin1或者說(shuō)ISO-8859-1就是滿8byte(整字節(jié))的編碼方式。無(wú)論你傳多少個(gè)字節(jié)進(jìn)去,mysql都可以認(rèn)為它是一個(gè)或者多個(gè)latin字符而已。是不是亂碼取決于讀出來(lái)之后的解碼方式,或者說(shuō)客戶端的處理方式??蛻舳巳绻雷x出來(lái)的是中文,那么就會(huì)按照中文的方式來(lái)嘗試解碼,自然就得不到亂碼,如果按照其它編碼方式來(lái)解碼,自然就可能是亂碼。
CREATE TABLE t_department ( sid varchar(32) NOT NULL, pid varchar(32) NOT NULL, thedata varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 2)打開(kāi)你的MySQL目錄下的my.ini文件,把里面所有的default-character-set選項(xiàng)設(shè)為GBK或者GB2312,保存后重啟MySQL。[Zone Yan.] 測(cè)試過(guò)----ok3)mysql數(shù)據(jù)庫(kù)安裝的時(shí)候。選擇語(yǔ)言為gbk的那個(gè),這樣在數(shù)據(jù)庫(kù)中才可以存放中文。
1.首先修改mysql字符集,這個(gè)有說(shuō)改配置文件,打開(kāi)my.ini配置文件(MySQL的配置文件),加入:character_set_server = utf8
2.用的是命令行方式修改,如下:進(jìn)入cmd命令,進(jìn)入mysql的bin目錄下,啟動(dòng)mysql;使用命令:show VARIABLES like 'character%'; 查看當(dāng)前字符集,發(fā)現(xiàn)都是gbk等字符集,這時(shí)使用如下命令改變字符集:
mysql SET character_set_client = utf8 ;
mysql SET character_set_connection = utf8 ;
mysql SET character_set_database = utf8 ;
mysql SET character_set_results = utf8 ;
mysql SET character_set_server = utf8 ;
3.無(wú)論使用修改配置文件還是使用命令行修改字符集,修改完成后,需要重啟mysql服務(wù),這時(shí),再用命令show VARIABLES like 'character%'; 查看當(dāng)前字符集,已經(jīng)生效。
4.由于,已經(jīng)建立了數(shù)據(jù)庫(kù),這時(shí)還需要在Navicat for mysql中,將數(shù)據(jù)庫(kù)的字符集也改掉。右鍵數(shù)據(jù)庫(kù),選擇數(shù)據(jù)庫(kù)屬性,如圖。 進(jìn)入后,修改字符集為utf8
5.之后,還需要對(duì)每個(gè)表點(diǎn)擊右鍵,選擇 涉及表 ;然后在“選項(xiàng)”中,將表的字符集進(jìn)行修改。
6.還需要將varchar類型 字段的的字符集也要改掉,進(jìn)入設(shè)計(jì)表中,點(diǎn)中某字段,發(fā)現(xiàn),數(shù)據(jù)類型果然還是Latin1,那么好,一個(gè)一個(gè)改過(guò)來(lái)即可。當(dāng)然,也可以使用命令的方式修改,命令如下:ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ps:可以先嘗試修改字符,如果修改字符依舊無(wú)效可以使用上述的辦法。