我來給你做一個綜合解釋吧。 在正常情況下。 PHP腳本 HTML 已經(jīng)瀏覽器 然后就是數(shù)據(jù)庫。 都有自己的字符集。何謂字符集。我想你如果是一個真正想熱衷于學PHP 那么你應該花一定的時間去了解一下字符集的問題。 就好比我做第一個項目。因為字符集搞的死去活來。 1.PHP的字符集。一般PHP網(wǎng)頁的是嵌套在html頁面以內(nèi)。那么如果在沒有沖突的情況下可以使用 header方面設置。比如?php header ... ? 3.數(shù)據(jù)庫的問題。mysql_query("set names gbk"); 這句話意思就是說,在操作數(shù)據(jù)庫的時候已這個字符集去讀寫。當然這個字符集要對應你的頁面的字符集哦。 4.瀏覽器。瀏覽器的問題是最萬惡的,因為每個瀏覽器默認的是gb2312.當然不同的瀏覽器是不同的。所以要想成為一名優(yōu)秀的程序員,寫出優(yōu)質(zhì)的代碼。你還得去了解每個瀏覽器的差別。當然目前是不需要的,當然這個問題你慢慢學習。寫代碼的過程中會慢慢了解到的。你要做的就是將所有使用字符集確保一致性
創(chuàng)新互聯(lián)專注于銅陵企業(yè)網(wǎng)站建設,響應式網(wǎng)站,成都商城網(wǎng)站開發(fā)。銅陵網(wǎng)站建設公司,為銅陵等地區(qū)提供建站服務。全流程按需制作網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
頁面文件加上header("Content-Type:text/html;charset=gbk");
character_set_client=binary 改為character_set_client=gbk
在你的語句中修改下 character_set_client=gbk,再試試,如果不行
在MYSQL中執(zhí)行下面的語句看看你的數(shù)據(jù)庫和表是什么字符集,字符集和頁面要統(tǒng)一
1、顯示某數(shù)據(jù)庫字符集設置
show create database 你的數(shù)據(jù)庫名;
2、顯示某數(shù)據(jù)表字符集設置
show create table 你的表名;
在給表中插入中文字符時顯示“??”,Baidu一番后給my.ini的配置文件中增加了默認字符集的配置
解決方案一:
需要將MySQL的字符集改為UTF-8。左鍵點擊托盤區(qū)的WampServer圖標,選擇MySQL--my.ini,就會打開MySQL的配置文件 了,在[client]段落增加:default-character-set=utf8 ;在[mysqld]段落增加:character_set_server=utf8 。重啟MySQL服務即可。
以下的文章主要介紹的是MySQL數(shù)據(jù)庫中文亂碼的實際解決方案,可以說是較為實用的。我們大家都知道在使用MySQL數(shù)據(jù)庫時,我們對其插入一些中文字符的實際操作過程中經(jīng)常會出現(xiàn)亂碼,中文全被用?代替。
出現(xiàn)這種情況的原因,多是字符集不匹配造成的。
在MySQL中,如果使用缺省的字符集,在建庫、建表時,默認使用的是latin1字符集,為ISO 8859-1西歐字符集。
插入中文字符時,與之不匹配,就會出現(xiàn)亂碼。
本人使用的是MySQL 5.0版,并用C#操作MYSQL數(shù)據(jù)庫,當插入中文字符時,發(fā)現(xiàn)顯示的是亂碼。
初步估計是字符集沒有配對。查找后,發(fā)現(xiàn)MSYQL默認使用的是latin1,因此將數(shù)據(jù)庫的配置文件中的字符設置改為utf8,并在C#中將中文字符,轉(zhuǎn)為utf8,插入后,仍為亂碼。
MySQL也支持gb2312,又將MySQL的字符設置改為gb2312,C#中使用Default,重起MySQL后,操作仍然無效。
后想起,雖然將MySQL的字符集設置為gb2312或utf8,但已經(jīng)建立的數(shù)據(jù)庫和表,仍采用的是默認的字符集,也即仍為當初的西歐字符集,最好,只得忍痛將數(shù)據(jù)庫刪除,重新以gb2312字符集建立數(shù)據(jù)庫和表。
再用C#插入中文字符后,一切OK。
再安裝好MySQL數(shù)據(jù)庫后,可以手工或使用配置工具,將my.ini文件中的默認字符集改為gb2312,再重新建庫和表時,不用再在語句中指定字符集,其默認設置也即為gb2312,可以正常顯示中文字符集。