php的汉字转换:Unicode(UTF8)至GBK

2016 年 1 月 9 日5130

php的汉字转换:Unicode(UTF8)至GBK

来源:时间:2013-09-05 19:23:50阅读数:

[导读] P>秋水无恨 GBK Unicode UTF8 汉字 转换php的汉字转换一直是比较麻烦的事该类内置了四个过滤"& [dec];","& x[hex];","%u[hex]","utf8转换"方便用户的使用,同时也可自定义过滤进行自己喜欢的操作qswhU php

P>秋水无恨 GBK Unicode UTF8 汉字 转换
php的汉字转换一直是比较麻烦的事
该类内置了四个过滤"&#[dec];","&#x[hex];","%u[hex]","utf8转换"
方便用户的使用,同时也可自定义过滤进行自己喜欢的操作
qswhU.php 从这里下载
http://http://www.zjjv.com///user/qswh/qswhU.zip
class qswhU{
var $qswhData;
function qswhU($filename="qswhU.php"){
$this->qswhData=file($filename);
}

function decode($str,$pattern=0){
$arr=array("/&#(w+);/iU","/((%ww)+)/i","/%u(w{4,5})/iU");
if(is_integer($pattern)){
if($pattern>=count($arr))die("Invalid Function");
$pattern=$arr[$pattern];
}
return preg_replace_callback($pattern,array($this,"u2gb"),$str);
}

function u2gb($arr){
/******(qiushuiwuhen 2002-8-15)******/
$ret="";$str=$arr[1];
if(preg_match_all("/%w{2}/",$str,$matches)){
for($i=0;$i<count($matches[0]);$i++){
$chr1=hexdec(substr($matches[0][$i],1));
$arr=array("f0","e0","c0","0");
for($j=0;$j<count($arr);$j++)if($chr1>hexdec($arr[$j]))break;
$chr=hexdec(substr($matches[0][$i],1))-hexdec($arr[$j]);
while(++$j<count($arr))$chr=$chr*0x40+(hexdec(substr($matches[0][++$i],1))-0x80);
$str=dechex($chr);
if(strlen($str)==4){
$p=hexdec(substr($str,0,2))-0x4d;
$q=hexdec(substr($str,2))*4;

除非特别声明,PHP100新闻均为原创或投稿报道,转载请注明作者及原文链接
原文地址:

上一篇:对PHP采集数据提取核心函数的速度的测试与分析

下一篇:php的汉字转换:GBK至Unicode(UTF8)

0 0