PHP統(tǒng)一頁面編碼避免亂碼問題
頁面編碼統(tǒng)一
MySQL數(shù)據(jù)庫編碼、html頁面編碼、PHP或html文件本身編碼要全部一致。
1、MySQL數(shù)據(jù)庫編碼:
建立數(shù)據(jù)庫時指定編碼(如gbk_chinese_ci),建立數(shù)據(jù)表、建立字段、插入數(shù)據(jù)時不要指定編碼,會自動繼承數(shù)據(jù)庫的編碼。
數(shù)據(jù)庫連接時,也有編碼,可以在連接完數(shù)據(jù)庫后,執(zhí)行mysql_query(‘SET NAMES gbk');//將gbk換成你的編碼,如utf8。
2、html頁面的編碼,指的是這一行的設(shè)置:
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
3、PHP或html文件本身的編碼:
用editplus打開php文件或html文件,另存時,選擇的編碼,如果數(shù)據(jù)庫和頁面編碼是gbk,則這兒的編碼選擇ansi;如果數(shù)據(jù)庫和頁面編碼是utf-8,則這兒也選擇utf-8。
4、Javascript或Flash中傳遞的數(shù)據(jù)是utf-8編碼:
另外要注意的是,Javascript或Flash中傳遞的數(shù)據(jù)是utf-8編碼,如果數(shù)據(jù)庫和頁面編碼是gbk,要進(jìn)行轉(zhuǎn)碼,然后寫入數(shù)據(jù)庫。
iconv('utf-8', 'gbk', $content);
5、在PHP程序中,可以加上一行,來指定PHP源程序的編碼:
header('Content-type: text/html; charset=gbk');
php頁面編碼
1.在文件頭中設(shè)置編碼
<?php
@header('Content-type: text/html;charset=UTF-8');
?>
2.header與meta的區(qū)別
用@header('Content-type: text/html; charset=gbk');與<meta http-equiv="Content-Type" content="text/html; charset=gbk" />的區(qū)別
他們都是告訴瀏覽器用什么編碼顯示網(wǎng)頁,要說有什么不同,header是發(fā)送原始 HTTP 標(biāo)頭,不在網(wǎng)頁中留下什么,而meta是寫在網(wǎng)頁中。
其一,如果網(wǎng)頁中沒有meta,那么發(fā)送 HTTP 標(biāo)頭就起作用了。
其二,用header()函數(shù)發(fā)送原始 HTTP 標(biāo)頭,可以包含更多內(nèi)容,設(shè)置編碼只是其中之一。
其三,有些時候不要網(wǎng)頁顯示什么內(nèi)容,但要通知瀏覽器用什么編碼來進(jìn)行后續(xù)動作。
相關(guān)文章
php 截取字符串并以零補齊str_pad() 函數(shù)
str_pad() 函數(shù)把字符串填充為指定的長度,需要的朋友可以參考下。2011-05-05