今天我們來談?wù)刾hp中的echo編碼問題。在編寫php的過程中,echo是我們經(jīng)常用到的一個(gè)函數(shù)。它的作用是輸出文本。但是,在使用echo輸出文本時(shí),我們常常會(huì)遇到編碼問題。比如,文本中包含了中文字符,而在輸出時(shí),中文字符變成了亂碼。那么,這種情況該如何解決呢?接下來,我們就來一起看看。
php 中 echo 輸出字符到頁面上,好像很簡(jiǎn)單,只需要寫一個(gè)echo,然后接上我們要顯示的字符串就可以了。但實(shí)際上,在輸出中文字符時(shí), 容易出現(xiàn)亂碼。這時(shí)候,我們需要去注意輸出編碼。如果你的編碼是UTF-8,而輸出的頁面編碼是GB2312,肯定就會(huì)出現(xiàn)中文亂碼。
echo "中文字符串";
在這里我們可以做如下修改:
header('Content-type:text/html;charset=utf-8'); echo "中文字符串";
通過在網(wǎng)頁頭部設(shè)置一個(gè)utf-8的字符集HTTP頭,就可以避免出現(xiàn)中文亂碼的問題了。這個(gè)開頭輸出很重要,建議所有的php文件都設(shè)置這樣的開頭輸出。
如果我們把網(wǎng)頁改成gbk的編碼,就會(huì)發(fā)現(xiàn)出現(xiàn)了中英文混合的時(shí)候,頁面會(huì)出現(xiàn)中文亂碼。這是因?yàn)間bk所含的中文字符集和utf-8不一樣,所以我們需要根據(jù)我們的需要來判斷編碼類型。
header('Content-type:text/html;charset=gbk'); echo "中文字符串";
除了改變header之外,還可以調(diào)整php配置文件php.ini中默認(rèn)的字符設(shè)置。在里面有個(gè)設(shè)置項(xiàng)default_charset用來指定放在http頭信息中的默認(rèn)字符集。需要特別注意的是要把此值與header設(shè)置的編碼值完全一致(不區(qū)分大小寫)。比如,假設(shè)在php.ini中配置default_charset="utf-8",那么就必須在header中設(shè)置header('Content-Type: text/html; charset=utf-8')才行。
header('Content-type:text/html;charset=utf-8'); echo "中文字符串";
正如我們所看到的那樣,解決中文編碼問題的方法是非常簡(jiǎn)單的。 如果你遇到了類似的問題,只要根據(jù)上述的方法解決就行了。
最后提醒一句,在編寫php代碼時(shí),我們需要時(shí)刻注意字符串的編碼,以免發(fā)生不必要的錯(cuò)誤。