php 汉字编码,汉字转换成Unicode编码PHP程序

汉字转换成unicode方法

 代码如下

//将utf8编码的汉字转换为unicode

function htou($c){

$n = (ord($c[0]) & 0x1f) << 12;

$n = (ord($c[1]) & 0x3f) << 6;

$n = ord($c[2]) & 0x3f;

return $n;

}

//在代码中隐藏utf8格式的字符串

function my_utf8_unicode($str) {

$encode='';

for($i=0;$i

if(ord(substr($str,$i,1))> 0xa0){

$encode.=''.htou(substr($str,$i,3)).';';

$i =2;

}else{

$encode.=''.ord($str[$i]).';';

}

}

return $encode;

}

echo my_utf8_unicode("哈哈ABC");

?>

汉字转换成unicode方法二

 代码如下

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);

上述将输出如下结果:

一个汉字转换成Un

icode四字节编

码的PHP函数。

这一组函数可以将汉字转成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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值