十月 13th, 2009php获取字符的unicode编码
此文章来源于伊人莫公,转载请注明出处
要求传入数据是utf-8编码,如果不是,请使用mb_convert_encoding()进行转码
- /**
- * @param {string} $word 必须是一个汉字,或代表汉字的一个数组(用str_split切割过)
- * @return {string} 一个十进制unicode码,如4f60,代表汉字 “你”
- */
- function getUnicodeFromOneUTF8($word) {
- //获取其字符的内部数组表示,所以本文件应用utf-8编码!
- if (is_array( $word))
- $arr = $word;
- else
- $arr = str_split($word);
- //此时,$arr应类似array(
- //定义一个空字符串存储
- $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); //返回类似汉字"你",十进制
- //return dechex(bindec($bin_str)); //返回十六进制4f60
- }