国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

關于PHP自動判斷字符集并轉碼的詳解

2024-05-04 23:11:02
字體:
來源:轉載
供稿:網友
原理很簡單,因為gb2312/gbk是中文兩字節,這兩個字節是有取值范圍的,而utf-8中漢字是三字節,同樣每個字節也有取值范圍。而英文不 管在何種編碼情況下,都是小于128,只占用一個字節(全角除外)。
如果是文件形式的編碼檢查,還可以直接check utf-8的BOM信息。話不多說,直接上函數,這個函數是用來對字符串進行檢查和轉碼的。

復制代碼 代碼如下:


<?php
function safeEncoding($string,$outEncoding ='UTF-8')
{
$encoding = "UTF-8";
for($i=0;$i<strlen($string);$i++)
{
if(ord($string{$i})<128)
continue;

if((ord($string{$i})&224)==224)
{
//第一個字節判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
//第二個字節判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}

if((ord($string{$i})&192)==192)
{
//第一個字節判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二個字節判斷通過
$encoding = "GB2312";
break;
}
}
}

if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}
?>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵川县| 宝清县| 徐水县| 古丈县| 营口市| 大洼县| 博湖县| 大洼县| 西和县| 阿荣旗| 三河市| 大化| 叙永县| 彭泽县| 七台河市| 历史| 芦山县| 临潭县| 曲沃县| 福鼎市| 论坛| 丰县| 如东县| 沁源县| 临汾市| 临漳县| 延寿县| 林口县| 宝坻区| 岑巩县| 通许县| 原平市| 沛县| 乌兰浩特市| 永善县| 津南区| 三原县| 江门市| 岑溪市| 巴楚县| 嘉黎县|