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