您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)php mysql中文亂碼怎么辦的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
php mysql中文亂碼的解決辦法:1、修改數(shù)據(jù)庫或表中的編碼格式;2、在PHP語句中加入“mysqli_query(“set names utf8”);”;3、在客戶端中加入“header(‘charset=utf-8’);”即可。
PHP與Mysql中中文亂碼問題
當(dāng)用MySQL搭建數(shù)據(jù)庫的時(shí)候,有時(shí)會(huì)出現(xiàn)一些亂碼問題,下面是一些解決方法。
問題一:數(shù)據(jù)庫或表中的編碼格式不正確
在創(chuàng)建數(shù)據(jù)庫時(shí),用以下代碼來進(jìn)行創(chuàng)建:
CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
建表的時(shí)候:
CREATE TABLE `table_name` ( id varchar(40) NOT NULL PRIMARY KEY AUTO_INCREMENT, `UserID` varchar(40) NOT NULL default '', ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
這3個(gè)設(shè)置好了,Mysql基本就不會(huì)出問題了,即建庫和建表時(shí)都使用相同的編碼格式。
如果已經(jīng)創(chuàng)建了數(shù)據(jù)庫可以用以下方法:
1.查看默認(rèn)的編碼格式:
mysql> show variables like "%char%"; +--------------------------+---------------+ | Variable_name | Value | +--------------------------+---------------+ | character_set_client | gbk | character_set_connection | gbk | | character_set_database | utf8 | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | utf8 | | character_set_system | utf8 | +--------------------------+-------------+
注:以前2個(gè)來確定,可以使用set names utf8,set names gbk設(shè)置默認(rèn)的編碼格式;通過workbench可以更加簡(jiǎn)單地設(shè)置數(shù)據(jù)庫的編碼。
執(zhí)行SET NAMES utf8的效果等同于同時(shí)設(shè)定如下:
SET character_set_client='utf8'; SET character_set_connection='utf8'; SET character_set_results='utf8';
2.查看test數(shù)據(jù)庫的編碼格式:
mysql> show create database test; +------------+------------------------------------------------------------------------------------------------+ | Database | Create Database | +------------+------------------------------------------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ | +------------+------------------------------------------------------------------------------------------------+
3.查看yjdb數(shù)據(jù)表的編碼格式:
mysql> show create table yjdb; | yjdb | CREATE TABLE `yjdb` ( `sn` int(5) NOT NULL AUTO_INCREMENT, `type` varchar(10) NOT NULL, brc` varchar(6) NOT NULL, `teller` int(6) NOT NULL, `telname` varchar(10) NOT NULL, `date` int(10) NOT NULL, `count` int(6) NOT NULL, `back` int(10) NOT NULL, PRIMARY KEY (`sn`), UNIQUE KEY `sn` (`sn`), NIQUE KEY `sn_2` (`sn`) ) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |
問題二:PHP與Mysql傳輸編碼不兼容
需要在PHP語句中加入
mysqli_query(“set names utf8”);
mysql set names 解決亂碼的原因:
http://blog.csdn.net/zsmj_2011/article/details/7943734
問題三:客戶端解碼問題:
加入header(‘charset=utf-8’);即可
感謝各位的閱讀!關(guān)于php mysql中文亂碼怎么辦就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。