PHP學(xué)習(xí)筆記之字符串編碼的轉(zhuǎn)換和判斷
iconv('GBK', 'UTF-8//IGNORE', '腳本之家'); // 將字符串由 GBK 編碼轉(zhuǎn)換為 UTF-8 編碼
但 iconv 只能解決編碼預(yù)先知道的情況,如果字符串編碼未知,則需要先探測其編碼,這時(shí)可能會(huì)用到 mb_string 擴(kuò)展庫:
mb_detect_encoding('腳本之家');
可是 mb_detect_encoding 存在一個(gè)硬傷,經(jīng)常出現(xiàn)判斷不準(zhǔn)確的情況?;蛟S這樣就可以解決:
// 使用 iconv 轉(zhuǎn)換并判斷是否等值,效率不高
function is_utf8 ($str) {
if ($str === iconv('UTF-8', 'UTF-8//IGNORE', $str)) {
return 'UTF-8';
}
}
// 多種編碼的情況
function detect_encoding ($str) {
foreach (array('GBK', 'UTF-8') as $v) {
if ($str === iconv($v, $v . '//IGNORE', $str)) {
return $v;
}
}
}
通過以上方式得到字符串編碼信息后,就可以利用 iconv 或 mb_convert_encoding 來轉(zhuǎn)換編碼了。
相關(guān)文章
PHP MVC模式在網(wǎng)站架構(gòu)中的實(shí)現(xiàn)分析
MVC模式在網(wǎng)站架構(gòu)中十分常見。它允許我們建立一個(gè)三層結(jié)構(gòu)的應(yīng)用程式,從代碼中分離出有用的層,幫助設(shè)計(jì)師和開發(fā)者協(xié)同工作以及提高我們維護(hù)和擴(kuò)展既有程式的能力。2010-03-03
基于php中echo用逗號(hào)和用點(diǎn)號(hào)的區(qū)別詳解
下面小編就為大家分享一篇基于php中echo用逗號(hào)和用點(diǎn)號(hào)的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Laravel5.3+框架定義API路徑取消CSRF保護(hù)方法詳解
這篇文章主要介紹了Laravel框架定義API路徑取消CSRF保護(hù),需要的朋友可以參考下2020-04-04
php獲取ip的三個(gè)屬性區(qū)別介紹(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
獲取用戶IP地址的三個(gè)屬性的區(qū)別HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR,需要的朋友可以參考下2012-09-09
PHP中十六進(jìn)制顏色與RGB顏色值互轉(zhuǎn)的方法
今天小編就為大家分享一篇關(guān)于PHP中十六進(jìn)制顏色與RGB顏色值互轉(zhuǎn)的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03

