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