PHP()函數(shù)字符編碼轉(zhuǎn)換的問(wèn)題講解更新時(shí)間:2019年03月22日
2021-07-20
PHP()函數(shù)字符編碼轉(zhuǎn)換問(wèn)題說(shuō)明
更新時(shí)間:2019年3月22日10:50:06 作者:
今天小編就給大家分享一個(gè)關(guān)于PHP()函數(shù)字符編碼轉(zhuǎn)換的講解。主編覺(jué)得內(nèi)容還不錯(cuò)。現(xiàn)在我把它分享給你。有很好的參考價(jià)值。有需要的朋友關(guān)注小編。一起來(lái)看看
php中的函數(shù)庫(kù)可以完成各種字符集之間的轉(zhuǎn)換,是php編程中必不可少的基礎(chǔ)函數(shù)庫(kù);但有時(shí)會(huì)無(wú)緣無(wú)故地對(duì)某些數(shù)據(jù)進(jìn)行較少的轉(zhuǎn)碼。例如,當(dāng)轉(zhuǎn)換字符“—”到達(dá)時(shí)會(huì)出現(xiàn)錯(cuò)誤。
我們慢慢來(lái)看看這個(gè)函數(shù)的用法。
最簡(jiǎn)單的應(yīng)用,替換成utf-8:
$text=iconv("GB2312","UTF-8",$text);
在使用$text=("UTF-8","",$text)的過(guò)程中,如果遇到一些特殊字符,如:"—", "."在英文名稱等,轉(zhuǎn)換它打破了。這些字符后的文本無(wú)法再轉(zhuǎn)換。
對(duì)于這個(gè)問(wèn)題,可以使用如下代碼來(lái)實(shí)現(xiàn):
$text=iconv("UTF-8","GBK",$text);
你沒(méi)看錯(cuò),就是這么簡(jiǎn)單,別用了編碼轉(zhuǎn)換 php,用GBK寫(xiě)就行了。
還有一個(gè)方法,第二個(gè)參數(shù),加//,忽略錯(cuò)誤,如下:
iconv("UTF-8","GB2312//IGNORE",$data);
兩種方法沒(méi)有具體的比較,感覺(jué)第一種方法(GBK代替)更好。
在php手冊(cè)()中說(shuō)明:
(PHP 4 >= 4.0.5, PHP 5)
-到
(,, str )
str from to 上的一個(gè)集合?;?。
如果你 // to 是。這是當(dāng) a 不能在的時(shí)候,它可以是一個(gè)或。如果你 //, 那在 are., str 是從 .
使用該函數(shù)進(jìn)行字符串編碼轉(zhuǎn)換時(shí)需要注意,如果將utf-8轉(zhuǎn)換為時(shí)間,字符串可能會(huì)被截?cái)唷_@時(shí)候可以使用以下方法來(lái)解決:
$str=iconv('utf-8',"gb2312//TRANSLIT",file_get_contents($filepath));
第二個(gè)參數(shù)中增加了紅字部分,表示:如果目標(biāo)代碼中沒(méi)有與源代碼匹配的字符,則會(huì)選擇一個(gè)相似的字符進(jìn)行轉(zhuǎn)換。這里也可以使用://這個(gè)參數(shù)的意思是忽略不能轉(zhuǎn)換的字符
表示在轉(zhuǎn)換過(guò)程中忽略錯(cuò)誤。如果沒(méi)有參數(shù),則無(wú)法保存該字符后的所有字符串。
不是php的默認(rèn)功能,而是默認(rèn)安裝的模塊。需要安裝后才能使用。
如果是+php,可以修改php.ini文件,去掉“;”在=.dll之前,把你原來(lái)的php安裝文件下的.dll復(fù)制到你的/(如果你的dll指向這個(gè)目錄)。環(huán)境中,使用靜態(tài)安裝方式,多加一項(xiàng)--with-,到時(shí)候就可以看到該項(xiàng)了。 (.3+.06+php4.3.2).
功能介紹
該函數(shù)用于轉(zhuǎn)換代碼。一直沒(méi)搞懂程序編碼的概念,現(xiàn)在好像有點(diǎn)開(kāi)悟了。不過(guò)英文一般沒(méi)有編碼問(wèn)題,只有中文數(shù)據(jù)才會(huì)有這個(gè)問(wèn)題。例如,當(dāng)您使用 Zend 或編寫(xiě)程序時(shí),您使用 gbk 編碼。如果需要將數(shù)據(jù)輸入數(shù)據(jù)庫(kù),并且數(shù)據(jù)庫(kù)編碼為utf8,則數(shù)據(jù)必須進(jìn)行編碼,否則輸入數(shù)據(jù)庫(kù)時(shí)??會(huì)出現(xiàn)亂碼。
將 GBK 轉(zhuǎn)換為 UTF-8:
再到 Big5:
但是,要使用上述功能,需要先安裝,但需要先擴(kuò)展庫(kù)。
(str, [,]) 需要先展開(kāi)庫(kù)。在 php.ini 中,刪除; =.dll之前;可以指定多種輸入編碼,會(huì)根據(jù)內(nèi)容自動(dòng)識(shí)別,但執(zhí)行效率太差;
(,, str) 注意:除了指定要轉(zhuǎn)換為第二個(gè)參數(shù)的編碼外,還可以添加兩個(gè)后綴://和//編碼轉(zhuǎn)換 php,其中//會(huì)自動(dòng)改變不能直接轉(zhuǎn)換的字符變成一個(gè)或多個(gè)相似字符, // 會(huì)忽略不能轉(zhuǎn)換的字符,默認(rèn)效果是從第一個(gè)非法字符開(kāi)始截?cái)唷?/p>
一般情況下使用,只有在無(wú)法確定原碼或轉(zhuǎn)換后無(wú)法正常顯示時(shí)才使用該函數(shù)。
$content = iconv("GBK", "UTF-8″, $content); $content = mb_convert_encoding($content, "UTF-8″, "
總結(jié)
以上是本文的全部?jī)?nèi)容。希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值。感謝您對(duì) 的支持。如果您想了解更多,請(qǐng)查看以下相關(guān)鏈接