最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

不用iconv庫的gb2312與utf-8的互換函數(shù)

 更新時間:2006年10月09日 00:00:00   作者:  

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

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

/** gb2312到utf-8 **/
function gb2utf8($text, &$charset) {
//提取文本中的成分,漢字為一個元素,連續(xù)的非漢字為一個元素
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];
//返回?fù)Q碼后的串
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);
?>

相關(guān)文章

最新評論

随州市| 府谷县| 榕江县| 拜泉县| 垦利县| 铅山县| 阳高县| 正镶白旗| 江川县| 敖汉旗| 普兰店市| 卢氏县| 都匀市| 东明县| 余姚市| 江安县| 常宁市| 成武县| 读书| 揭阳市| 商城县| 宁河县| 百色市| 砀山县| 景宁| 阿尔山市| 布尔津县| 宜春市| 都江堰市| 绍兴县| 民权县| 绥滨县| 兴城市| 花莲县| 华蓥市| 平利县| 浠水县| 桦甸市| 墨脱县| 宁海县| 荆门市|