php unicode编码与解码代码

代码语言:php

所属分类:加密解密

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
//字符串转Unicode编码
function unicode_encode($strLong) {
    $strArr = preg_split('/(?<!^)(?!$)/u', $strLong); //拆分字符串为数组(含中文字符)
    $resUnicode = '';
    foreach ($strArr as $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
        }
        $str = '\\u' . $_sup . $unicode; //加上 \u  返回
        $resUnicode .= $str;
    }
    return $resUnicode;
}
//Unicode编码转字符串方法1
function unicode_decode($name) {
    // 转换编码,将Unicode编码转换成可以浏览的utf-8编码
    $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
    preg_match_all($pattern, $name, $matches);
    if (!empty($matches)) {
        $name = '';
        for ($j = 0; $j < c.........完整代码请登录后点击上方下载按钮下载查看

网友评论0