這篇文章主要講解了“如何用php修改中文編碼格式”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何用php修改中文編碼格式”吧!
成都創(chuàng)新互聯(lián)公司為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、成都app軟件開發(fā)、重慶小程序開發(fā)公司、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
一、中文編碼方式的種類
在介紹如何改變中文編碼格式之前,需要先了解中文編碼方式的種類。
GBK/GB2312
GBK是“漢字內(nèi)碼擴(kuò)展規(guī)范”的簡(jiǎn)稱,是中國國家標(biāo)準(zhǔn),它是GB2312的擴(kuò)展集,支持了全世界上萬種漢字的編碼。GBK編碼支持繁體中文、簡(jiǎn)體中文、日本、朝鮮等語言文字。
UTF-8
UTF-8是通用多字節(jié)編碼技術(shù),可對(duì)Unicode進(jìn)行可變長度編碼,它可以表示Unicode標(biāo)準(zhǔn)中的任意字符,且向后兼容ASCII。
二、php中處理中文編碼問題
獲取表單中數(shù)據(jù)的編碼格式
在獲取表單中的數(shù)據(jù)之前,需要先確定該數(shù)據(jù)的編碼方式。可以通過使用php的mb_detect_encoding函數(shù)來判斷所獲取的數(shù)據(jù)編碼方式。
例如:
$encode = mb_detect_encoding($_POST['name'], array("ASCII","UTF-8","GB2312","GBK","BIG5"));
這個(gè)函數(shù)會(huì)依次檢測(cè)該數(shù)據(jù)是否為ASCII、UTF-8、GB2312、GBK、BIG5編碼方式,如果檢測(cè)到該數(shù)據(jù)的編碼格式為UTF-8,則返回UTF-8編碼方式。
轉(zhuǎn)換編碼格式
在知道了數(shù)據(jù)的編碼格式之后,就需要將其轉(zhuǎn)換為所需要的編碼格式。在php中,有兩個(gè)方法可以用來轉(zhuǎn)換編碼格式:
① mb_convert_encoding() :
$new_name = mb_convert_encoding($_POST['name'], 'UTF-8', 'auto');
使用 mb_convert_encoding() 函數(shù)將 $_POST['name'] 中的數(shù)據(jù)轉(zhuǎn)換成UTF-8編碼形式,并賦值給新的變量$new_name。
② iconv() :
$new_name = iconv($encode, "UTF-8", $_POST['name']);
使用 iconv() 函數(shù)將 $_POST['name'] 中的數(shù)據(jù)從 $encode 編碼方式轉(zhuǎn)換成UTF-8編碼方式,并賦值給新的變量$new_name。
三、中文編碼問題的實(shí)際應(yīng)用
在實(shí)際開發(fā)中,我們經(jīng)常會(huì)遇到需要將數(shù)據(jù)庫中的中文數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換的情況。
例如,在從數(shù)據(jù)庫中讀取中文數(shù)據(jù)時(shí),通常需要將其轉(zhuǎn)換為UTF-8編碼方式:
MySQL_query("SET NAMES 'UTF8'");
$result = mysql_query("SELECT * FROM `table`");
while($row = mysql_fetch_array($result)){
$new_name = iconv("GB2312", "UTF-8", $row['name']);
}
在將中文數(shù)據(jù)寫入數(shù)據(jù)庫時(shí),同樣需要將數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)庫所支持的編碼方式:
mysql_query("SET NAMES 'GBK'");
$new_name = iconv("UTF-8", "GBK", $_POST['name']);
mysql_query("INSERT INTO `table` (`name`) VALUES ('".$new_name."')");
在表單數(shù)據(jù)提交時(shí),為了避免中文亂碼,也需要將數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換:
$new_name = iconv("UTF-8", "GBK", $_POST['name']);
mysql_query("INSERT INTO `table` (`name`) VALUES ('".$new_name."')");
感謝各位的閱讀,以上就是“如何用php修改中文編碼格式”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何用php修改中文編碼格式這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
分享標(biāo)題:如何用php修改中文編碼格式
文章鏈接:http://chinadenli.net/article0/gsheio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、商城網(wǎng)站、企業(yè)建站、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)