Chinaunix首页 | 论坛 | 博客
  • 博客访问: 73967
  • 博文数量: 27
  • 博客积分: 1880
  • 博客等级: 上尉
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-16 08:51
文章分类

全部博文(27)

文章存档

2008年(27)

我的朋友
最近访客

分类:

2008-11-20 10:05:04

将utf8的单个汉字变成\u3234324的unicode 编码
function getUnicodeFromOneUTF8($word) {  
   //获取其字符的内部数组表示,所以本文件应用utf-8编码!  
   if (is_array( $word))  
     $arr = $word;  
   else    
     $arr = str_split($word);   
   //此时,$arr应类似array(228, 189, 160)  
   //定义一个空字符串存储  
   $bin_str = '';  
   //转成数字再转成二进制字符串,最后联合起来。  
   foreach ($arr as $value)  
            $bin_str .= decbin(ord($value));  
            //此时,$bin_str应类似111001001011110110100000,如果是汉字"你"  
            //正则截取  
            $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);  
            //此时, $bin_str应类似0100111101100000,如果是汉字"你"   
            //return bindec($bin_str); //返回类似20320, 汉字"你"  
            
            $out .= "\u".dechex(bindec($bin_str)); //如想返回十六进制4f60,用这句 
 
  
   echo $out;
 }
$str="abc我,是/中国人";
for($i=0;$i        $outstr .= ord($str[$i]) > 127 ? getUnicodeFromOneUTF8(iconv("gb2312","utf-8",$str[$i].$str[++$i])) : $str[$i];
}


阅读(612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~