⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charset.func.php

📁 这是matlab的一个小程序
💻 PHP
字号:
<?php
if(!defined('DEDEINC'))
{
	exit('dedecms');
}

$UC2GBTABLE = $CODETABLE = $BIG5_DATA = $GB_DATA = '';
$GbkUniDic = null;

//UTF-8 杞珿B缂栫爜
function utf82gb($utfstr)
{
	if(function_exists('iconv'))
	{
		return iconv('utf-8','gbk//ignore',$utfstr);
	}
	global $UC2GBTABLE;
	$okstr = "";
	if(trim($utfstr)=="")
	{
		return $utfstr;
	}
	if(empty($UC2GBTABLE))
	{
		$filename = DEDEINC."/data/gb2312-utf8.dat";
		$fp = fopen($filename,"r");
		while($l = fgets($fp,15))
		{
			$UC2GBTABLE[hexdec(substr($l, 7, 6))] = hexdec(substr($l, 0, 6));
		}
		fclose($fp);
	}
	$okstr = "";
	$ulen = strlen($utfstr);
	for($i=0;$i<$ulen;$i++)
	{
		$c = $utfstr[$i];
		$cb = decbin(ord($utfstr[$i]));
		if(strlen($cb)==8)
		{
			$csize = strpos(decbin(ord($cb)),"0");
			for($j=0;$j < $csize;$j++)
			{
				$i++; $c .= $utfstr[$i];
			}
			$c = utf82u($c);
			if(isset($UC2GBTABLE[$c]))
			{
				$c = dechex($UC2GBTABLE[$c]+0x8080);
				$okstr .= chr(hexdec($c[0].$c[1])).chr(hexdec($c[2].$c[3]));
			}
			else
			{
				$okstr .= "&#".$c.";";
			}
		}
		else
		{
			$okstr .= $c;
		}
	}
	$okstr = trim($okstr);
	return $okstr;
}

//GB杞琔TF-8缂栫爜
function gb2utf8($gbstr)
{
	if(function_exists('iconv'))
	{
		return iconv('gbk','utf-8//ignore',$gbstr);
	}
	global $CODETABLE;
	if(trim($gbstr)=="")
	{
		return $gbstr;
	}
	if(empty($CODETABLE))
	{
		$filename = DEDEINC."/data/gb2312-utf8.dat";
		$fp = fopen($filename,"r");
		while ($l = fgets($fp,15))
		{
			$CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6);
		}
		fclose($fp);
	}
	$ret = "";
	$utf8 = "";
	while ($gbstr != '')
	{
		if (ord(substr($gbstr, 0, 1)) > 0x80)
		{
			$thisW = substr($gbstr, 0, 2);
			$gbstr = substr($gbstr, 2, strlen($gbstr));
			$utf8 = "";
			@$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));
			if($utf8!="")
			{
				for ($i = 0;$i < strlen($utf8);$i += 3)
				$ret .= chr(substr($utf8, $i, 3));
			}
		}
		else
		{
			$ret .= substr($gbstr, 0, 1);
			$gbstr = substr($gbstr, 1, strlen($gbstr));
		}
	}
	return $ret;
}

//Unicode杞瑄tf8
function u2utf8($c)
{
	for ($i = 0;$i < count($c);$i++)
	{
		$str = "";
	}
	if ($c < 0x80)
	{
		$str .= $c;
	}
	else if ($c < 0x800)
	{
		$str .= (0xC0 | $c >> 6);
		$str .= (0x80 | $c & 0x3F);
	}
	else if ($c < 0x10000)
	{
		$str .= (0xE0 | $c >> 12);
		$str .= (0x80 | $c >> 6 & 0x3F);
		$str .= (0x80 | $c & 0x3F);
	}
	else if ($c < 0x200000)
	{
		$str .= (0xF0 | $c >> 18);
		$str .= (0x80 | $c >> 12 & 0x3F);
		$str .= (0x80 | $c >> 6 & 0x3F);
		$str .= (0x80 | $c & 0x3F);
	}
	return $str;
}

//utf8杞琔nicode
function utf82u($c)
{
	switch(strlen($c))
	{
		case 1:
			return ord($c);
		case 2:
			$n = (ord($c[0]) & 0x3f) << 6;
			$n += ord($c[1]) & 0x3f;
			return $n;
		case 3:
			$n = (ord($c[0]) & 0x1f) << 12;
			$n += (ord($c[1]) & 0x3f) << 6;
			$n += ord($c[2]) & 0x3f;
			return $n;
		case 4:
			$n = (ord($c[0]) & 0x0f) << 18;
			$n += (ord($c[1]) & 0x3f) << 12;
			$n += (ord($c[2]) & 0x3f) << 6;
			$n += ord($c[3]) & 0x3f;
			return $n;
	}
}

//Big5鐮佽浆鎹㈡垚GB鐮

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -