1. YiiYcc's blog首页
  2. PHP

PHP将汉字转换成Unicode编码的函数

这是一个将汉字转换成Unicode编码的PHP函数,支持GBK和UTF8编码。

function getUnicode($word)
{
	// 转UTF8
	$word0 = iconv('gbk', 'utf-8', $word);
	$word1 = iconv('utf-8', 'gbk', $word0);
	$word =  ($word1 == $word) ? $word0 : $word;
	// 拆分汉字
	preg_match_all('#(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+)#s', $word, $array, PREG_PATTERN_ORDER);
	$return  = array();
	// 转换
	foreach ($array[0] as $cc)
	{
		$arr = str_split($cc);
		$bin_str = '';
		foreach ($arr as $value)
		{
			$bin_str .= decbin(ord($value));
		}
		$bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
		$return[] = '&#' . bindec($bin_str) . ';';
	}

	return implode('', $return);
}

函数用法:

$word = ‘一个汉字转换成Unicode四字节编码的PHP函数。’;
echo getUnicode($word);

上述将输出如下结果:
&#19968&#20010&#27721&#23383&#36716&#25442&#25104&#65333&#65358
&#65353&#65347&#65359&#65348&#65349&#22235&#23383&#33410&#32534
&#30721&#30340&#80&#72&#80&#20989&#25968&#12290

补充 :
另外一组函数,发现在Ken Lin’s Blog 里面。
做了小部分修改,这一组函数可以将汉字转成unicode编码,也可以将unicode解码成汉字。
将汉字转成Unicode的函数:

function uni_encode ($word)
{
	$word0 = iconv('gbk', 'utf-8', $word);
	$word1 = iconv('utf-8', 'gbk', $word0);
	$word =  ($word1 == $word) ? $word0 : $word;
    $word = json_encode($word);
    $word = preg_replace_callback('/\\\\u(\w{4})/', create_function('$hex', 'return \'&#\'.hexdec($hex[1]).\';\';'), substr($word, 1, strlen($word)-2));
    return $word;
}

对Unicode编码进行解码的函数:

function uni_decode ($uncode)
{
    $word = json_decode(preg_replace_callback('/&#(\d{5});/', create_function('$dec', 'return \'\\u\'.dechex($dec[1]);'), '"'.$uncode.'"'));
    return $word;
}

 

发布者:yiiycc,转载请注明出处:https://yiiycc.com/posts/4339.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

+1-209-3155566

在线咨询:点击这里给我发消息

邮件:

工作时间:周一至周五,9:30-18:30,节假日休息