數(shù)據(jù)庫的編碼是 gbk 的,在查詢的時候把中文(utf-8)轉(zhuǎn)換成 gbk編碼就可以了
創(chuàng)新互聯(lián)公司主營昭蘇網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),昭蘇h5成都小程序開發(fā)搭建,昭蘇網(wǎng)站營銷推廣歡迎昭蘇等地區(qū)企業(yè)咨詢
$nickname=iconv('utf-8','gbk//TRANSLIT',$nickname);
轉(zhuǎn)換后才執(zhí)行查詢
1、要么頁面原始漢字和從數(shù)據(jù)庫里取出的漢字全是亂碼;
2、要么原始漢字和數(shù)據(jù)庫漢字,一個顯示正常了,另一個就變成亂碼了。
問題需要一步一步的解決。在實際操作以下方法之前,需要配置 Web 服務(wù)器,使其與 PHP 集成,最終可以調(diào)試 PHP 程序。我們以常見的 GB2312 和 UTF-8 字符集為例來測試和說明。瀏覽器是 IE7.0。
1、頁面原始漢字亂碼的解決
解決這個問題就需要使用 UltraEdit 的這個功能。
1.1 打開中文 Windows,用 UltraEdit 創(chuàng)建一個文本文件,手工輸入一個 PHP 頁面文件,文件內(nèi)容如下。保存為 test1.php 文件,注意保存時“格式”下拉框選擇“默認”- 特別注意這里。
確保三碼合一就可以了..
第一個是數(shù)據(jù)庫的字符集
第二個就是存進去的時候字符集
第三個就是顯示的時候的字符集
這三個都有可能造成亂碼;
第一個 舉例是:如果你插入的時候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能亂碼了.
第二種情況就是你插入正確 但你查詢的時候以UTF8查詢出來,但你在HTML頁面里設(shè)置編碼如果非UTF8那么也有可能造成亂碼.
數(shù)據(jù)庫使用utf8編碼,需要在操作的過程中統(tǒng)一全部編碼。
1.數(shù)據(jù)庫默認編碼
CREATE?DATABASE?`test`?DEFAULT?CHARACTER?SET?'utf8';
2.表默認編碼
CREATE?TABLE?`tablea`(
`id`?INT?NOT?NULL?AUTO_INCREMENT,
`title`?VARCHAR(100)?NULL,
)ENGINE=InnoDB?DEFAULT?CHARSET=utf8;
3.字段默認編碼
默認情況下,字段的編碼同表的編碼,但是如果修改了表的編碼,字段編碼不會同步修改,需要手動修改
這里修改編碼測試我將utf8 改為 gb2312? ,僅用于觀察修改后的情況(實際使用中可能是將gbk修改為utf8)
ALTER?TABLE?`test`.`tablea`?CHARACTER?SET?=?gb2312?;
--?修改表編碼后,查看建表語句
show?create?table?`tablea`;
--?可以看到輸出的建表語句中字段單獨設(shè)置了編碼
CREATE?TABLE?`tablea`(
`id`?INT?NOT?NULL?AUTO_INCREMENT,
`title`?VARCHAR(100)?CHARACTER?SET?utf8?NULL,
)ENGINE=InnoDB?DEFAULT?CHARSET=gb2312;
--?需要手動修改字段編碼
ALTER?TABLE?`tablea`?
CHANGE?COLUMN?`title`?`title`?VARCHAR(100)?CHARACTER?SET?'gb2312'?NULL?DEFAULT?NULL?;
4.當(dāng)前數(shù)據(jù)庫連接的編碼
連接數(shù)時設(shè)置編碼
//?PDO?連接
$db?=?new?PDO('mysql:host=myhost;dbname=test',?'login',?'password',?
array(PDO::MYSQL_ATTR_INIT_COMMAND?=?'SET?NAMES?\'UTF8\'')
);?
//?mysqli連接
$link?=?mysqli_connect("127.0.0.1",?"my_user",?"my_password",?"test");
mysqli_query($link,"SET?NAMES?'utf8';");
通過以上幾步操作,基本可以保證數(shù)據(jù)庫使用過程中不會出現(xiàn)亂碼
新聞標(biāo)題:php數(shù)據(jù)庫中文編碼 php數(shù)據(jù)庫中文亂碼怎么解決
網(wǎng)頁網(wǎng)址:http://sd-ha.com/article46/doijghg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)、微信小程序、靜態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)