php 汉字转化成 二进制 十进制 十六进制 数字

直接上代码

PHP代码
  1. <?php  
  2. /** 
  3.  * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 
  4.  * 条件:本文件以及函数的输入参数应该用utf-8编码,不然要加函数转换 
  5.  * 其实亦可轻易编写反向转换的函数,甚至不局限于汉字,奇怪为什么PHP没有现成函数 
  6.  * @author xieye 
  7.  * 
  8.  * @param {string} $word 必须是一个汉字,或代表汉字的一个数组(用str_split切割过) 
  9.  * @return {string} 一个十进制unicode码,如4f60,代表汉字 “你” 
  10.  * 
  11.  * @example 
  12.     echo "你 ".getUnicodeFromOneUTF8("你"); 
  13.     echo "<br />"; 
  14.     echo "好 ".getUnicodeFromOneUTF8("好"); 
  15.     echo "<br />"; 
  16.     echo "你好 ".getUnicodeFromOneUTF8("你好"); 
  17.     echo "<br />"; 
  18.     echo "你好吗 ".getUnicodeFromOneUTF8("你好吗"); 
  19.     你 20320 
  20.     好 22909 
  21.     你好 251503099357000 
  22.     你好吗 4.21952182258E+21 
  23.  */  
  24. function getUnicodeFromOneUTF8($word) {  
  25.     //获取其字符的内部数组表示,所以本文件应用utf-8编码!  
  26.     if (is_array$word))  
  27.         $arr = $word;  
  28.     else  
  29.         $arr = str_split($word);  
  30.     //此时,$arr应类似array(228, 189, 160)  
  31.     //定义一个空字符串存储  
  32.     $bin_str = '';  
  33.     //转成数字再转成二进制字符串,最后联合起来。  
  34.     foreach ($arr as $value)  
  35.         $bin_str .= decbin(ord($value));  
  36.     //此时,$bin_str应类似111001001011110110100000,如果是汉字"你"  
  37.     //正则截取  
  38.     $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3'$bin_str);  
  39.       
  40.     //此时, $bin_str应类似0100111101100000,如果是汉字"你"  
  41.     return bindec($bin_str);  
  42.     //返回类似20320, 汉字"你"  
  43.     //return dechex(bindec($bin_str));  
  44.     //如想返回十六进制4f60,用这句  
  45. }  
  46. echo "你 ".getUnicodeFromOneUTF8("你");  
  47. echo "<br />";  
  48. echo "好 ".getUnicodeFromOneUTF8("好");  
  49. echo "<br />";  
  50. echo "你好 ".getUnicodeFromOneUTF8("你好");  
  51. echo "<br />";  
  52. echo "你好吗 ".getUnicodeFromOneUTF8("你好吗");  
  53. exit;  
  54.   
  55. ?>  

来源网址:http://blog.csdn.net/nailwl/article/details/5520068



上一篇: php随机中文字符串
下一篇: php获取中文首字母
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2180
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑