本篇文章次要讲述了unicode与一般字符串的互相转化,具备肯定参考代价,感兴味的冤家理解一下。
unicode转字符串
办法一:json
/** * unicode转字符串,经过json转化 * @param $str * @return string */ function unicode_decode_by_json($str) { $json = '{"str":"' . $str . '"}'; $arr = json_decode($json, true); if (empty($arr)) return ''; return $arr['str']; }
办法二:
/** * unicode转中文 * @param $data * @return null|string|string[] */ function unicode_decode($data) { $rs = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data); return $rs; } function replace_unicode_escape_sequence($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }
字符串转unicode
/** * @param string $str 需转换字符,这里为单个字符 * @return string */ function get_unicode($str) { $bin_str = ''; $arr = is_array($str) ? $str : str_split($str);//猎取字符外部数组示意,此时$arr应相似array(228, 189, 160) 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,假如是汉字"你" $unicode = dechex(bindec($bin_str));//前往unicode十六进制 $_sup = ''; for ($i = 0; $i < 4 - strlen($unicode); $i++) $_sup .= '0';//补位高字节 0 return '\\u' . $_sup . $unicode; //加之 \u 前往 } /** * 转化字符串为unicode * @param $str string 可单个/单数个 * @return string */ function unicode_encode($str) { $_arr_str = preg_split('/(?<!^)(?!$)/u', $str);//拆分字符串为数组(含中文字符) $_ret_unicode = ''; foreach ($_arr_str as $_str) $_ret_unicode .= get_unicode($_str); return $_ret_unicode; }
测试成果:
$_str_test = 'see,你看我那里像坏蛋'; $_unicode = unicode_encode($_str_test); echo $_str_test . ' <b style="color: red">=></b> ' . $_unicode, '<br><br>'; echo $_unicode . ' <b style="color: red">=></b> ' . unicode_decode($_unicode), '<br><br>'; echo $_unicode . ' <b style="color: red">=></b> ' . unicode_decode_by_json($_unicode), '<br><br>';
相干教程:PHP视频教程
以上就是PHP学习之unicode与一般字符串的若何互相转化的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学 unicode转换
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!