人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

不用iconv庫的gb2312與utf-8的互換函數

不用iconv庫的gb2312與utf-8的互換函數

更新時間:2022-08-14 文章作者:未知 信息來源:網絡 閱讀次數:


一份gb2312.txt(184799字節)確實顯得太大了點,而且還要經unicode轉換。
這份對照表為51965字節,要小的多了。
對于無法使用iconv函數庫的場合還是很實用的。

<?php
//對照表的使用
$filename = "gb2utf8.txt";
$fp = fopen($filename,"r");
while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8;
}
fclose($fp);
//以上讀取對照表到數組備用

/** gb2312到utf-8 **/
function gb2utf8($text, &$charset) {
//提取文本中的成分,漢字為一個元素,連續的非漢字為一個元素
preg_match_all("/(?:[\x80-\xff].)|[\x01-\x7f]+/",$text,$tmp);
$tmp = $tmp[0];
//分離出漢字
$ar = array_intersect($tmp, array_keys($charset));
//替換漢字編碼
foreach($ar as $k=>$v)
$tmp[$k] = $charset[$v];
//返回換碼后的串
return join('',$tmp);
}

/** utf-8到gb2312 **/
function utf82gb($text, &$charset) {
$p = "/[xf0-xf7][x80-xbf]{3}|[xe0-xef][x80-xbf]{2}|[xc2-xdf][x80-xbf]|[x01-x7f]+/";
preg_match_all($p,$text,$r);
$utf8 = array_flip($charset);
foreach($r[0] as $k=>$v)
if(isset($utf8[$v]))
$r[0][$k] = $utf8[$v];
return join('',$r[0]);
}

//測試
$s = gb2utf8('這是對照表的測試', $charset);
echo utf82gb($s, $charset);
?>

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 织金县| 天门市| 蒙自县| 布尔津县| 沛县| 依安县| 巢湖市| 桦川县| 托克托县| 东光县| 腾冲县| 蕉岭县| 民丰县| 武汉市| 娱乐| 曲阜市| 黄骅市| 泰兴市| 永定县| 类乌齐县| 邯郸县| 镶黄旗| 吕梁市| 临沭县| 马鞍山市| 衡阳县| 屏东县| 湖州市| 沂源县| 县级市| 连州市| 蕲春县| 望城县| 奉新县| 石景山区| 分宜县| 永登县| 新乡县| 遂昌县| 阿图什市| 栖霞市|