亂碼主要以下幾個原因:
1。數據表中,表本身的編碼 和 欄位編碼,均為UTF8。
2。在寫入數據等資料庫操作前,發送語句 'set names utf8'
3。PHP文件都是UTF8編碼,無簽名(無BOM)
4。頁面上使用header或<meta>保證輸出的頁面是UTF8編碼。<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
www.itcyly.com
鮮少老師
㈡ PHP插入MYSQL資料庫中文變成亂碼 問號
去MYSQL裡面設置,不要在PHP里設置MYSQL的編碼,亂碼肯定就是編碼問題無疑,推薦你先把MYSQL裡面表的編碼改好,然後再把PHP的編碼改好,這樣就應該沒問題了。
㈢ php連接資料庫插入數據後,mysql中查詢漢字字元亂碼
解決亂碼有幾種方式:
在讀取資料庫的時候設置連接編碼:mysql_query("set
names
utf8");
在讀取資料庫的php文件的頭部加:header("Content-type:text/html;charset=utf-8");
php文件不是utf8格式的編碼,需要轉化。用notpad++文本編輯器打開php文件,點擊菜單中的「格式」,查看是否是「以utf8
無bom格式編碼」,不是的話請轉成此格式。
html格式的在頭部加上:<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/>
你看看你的是哪一種情況,都對比做的一下,還不行在問我。
㈣ php資料庫中文亂碼是怎麼造成的
確保三碼合一就可以了..
第一個是資料庫的字元集
第二個就是存進去的時候字元集
第三個就是顯示的時候的字元集
這三個都有可能造成亂碼;
第一個 舉例是:如果你插入的時候用的是GB2312 ,但你表中的default charset是utf8 那麼,就有可能亂碼了.
第二種情況就是你插入正確 但你查詢的時候以UTF8查詢出來,但你在HTML頁面里設置編碼如果非UTF8那麼也有可能造成亂碼.
㈤ PHP使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦
資料庫使用utf8編碼,需要在操作的過程中統一全部編碼。
1.資料庫默認編碼
CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';
2.表默認編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
3.欄位默認編碼
默認情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改
這里修改編碼測試我將utf8 改為 gb2312 ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)
ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;
--修改表編碼後,查看建表語句
showcreatetable`tablea`;
--可以看到輸出的建表語句中欄位單獨設置了編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
--需要手動修改欄位編碼
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;
4.當前資料庫連接的編碼
連接數時設置編碼
//PDO連接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);
//mysqli連接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");
通過以上幾步操作,基本可以保證資料庫使用過程中不會出現亂碼
㈥ PHP文件鏈接資料庫,插入數據,中文顯示亂碼,求高手解惑!!
你的資料庫是什麼編碼的?默認的latin編碼是不支持漢字的,改成utf8或者utf8mb4編碼,然後你的PHP文件編碼也使用utf8編碼
㈦ PHP插入數據到資料庫出中,中文出現亂碼~~全是問號
你把你的這兩行代碼,順序返過來
mysql_query($sql,$conn)
or
die(mysql_error());
mysql_query("set
names
'GBK'");
改為
mysql_query("set
names
'GBK'");
mysql_query($sql,$conn)
or
die(mysql_error());
㈧ PHP插入數據到資料庫出中,中文出現亂碼~~全是問號
你把你的這兩行代碼,順序返過來
mysql_query($sql,$conn) or die(mysql_error());
mysql_query("set names 'GBK'");
改為
mysql_query("set names 'GBK'");
mysql_query($sql,$conn) or die(mysql_error());
㈨ php中為什麼插入資料庫的中文變成亂碼
請將資料庫的編碼,表的編碼以及欄位的編碼與網頁代碼的編碼保持一致。
另外注意文件本身的編碼與html代碼頭meta中的編碼說明保持一致。
那你看看是不是在連接資料庫的時候採用了utf8格式,語法如mysql_query('set
names
utf8');
㈩ php 往資料庫里插入 數據,插入和讀取正常顯示中文,但 資料庫 里顯示亂碼怎麼破
可能是代碼格式不一致,你把編碼格式改成「utf8」,資料庫-操作-排序規則改成統一的格式試試看