PHP 中的 轉(zhuǎn)碼工作
對于 PHP 開發(fā)者來說, 轉(zhuǎn)碼不算什么新鮮事。但對于初學(xué)者來說,這個問題可能很棘手。對于網(wǎng)頁開發(fā)而言, 轉(zhuǎn)碼是將 Unicode 碼點表示的字符轉(zhuǎn)換成對應(yīng)的字符表示。在 PHP 中編寫程序時,需要特別注意這個問題。
比如,我們需要將 "世界" 轉(zhuǎn)換成中文 "世界"。可以使用下面這段 PHP 代碼:
$str = "世界"; echo mb_convert_encoding($str, "UTF-8", "HTML-ENTITIES");
該代碼輸出的結(jié)果為:
世界
這里我們使用了 PHP 內(nèi)置的 mb_convert_encoding 函數(shù)。其中第一個參數(shù)是待轉(zhuǎn)換字符串,第二個參數(shù)是目標(biāo)編碼格式,第三個參數(shù)是原始編碼格式。這個函數(shù)可以將多種編碼格式互相轉(zhuǎn)換。
除了編碼格式外,我們還需要注意 "" 與 "&#" 的區(qū)別。 "" 用于表示十六進制碼點,而 "&#" 用于表示十進制碼點。示例代碼如下:
$str1 = "世界"; $str2 = "楯来"; echo mb_convert_encoding($str1, "UTF-8", "HTML-ENTITIES"); // 輸出 "世界" echo mb_convert_encoding($str2, "UTF-8", "HTML-ENTITIES"); // 輸出 "世界"
當(dāng)然,上述代碼需要設(shè)置正確的字符編碼,否則輸出結(jié)果可能會出現(xiàn)亂碼。
除了 mb_convert_encoding 函數(shù)外,我們還可以使用 html_entity_decode 函數(shù)來進行 轉(zhuǎn)碼。示例代碼如下:
$str = "世界"; echo html_entity_decode($str, ENT_COMPAT, "UTF-8");
其中第一個參數(shù)是待轉(zhuǎn)換字符串,第二個參數(shù)指定需要轉(zhuǎn)換的實體(可選,默認(rèn)轉(zhuǎn)換所有不安全的字符),第三個參數(shù)為目標(biāo)編碼格式(可選,默認(rèn)為 ISO-8859-1)。
總的來說,PHP 中的 轉(zhuǎn)碼并不是很復(fù)雜,但需要仔細(xì)研究各種字符編碼格式,同時,我們需要注意 "" 與 "&#" 的區(qū)別。這樣才能在實際編碼工作中準(zhǔn)確無誤地進行轉(zhuǎn)碼工作。