PHP Unicode加解码 串口的文本模式标准

通信中串口的文本模式标准通常指的是如何通过串行接口传输字符数据。在文本模式下,每个字符都被编码为一个或多个字节进行传输。最常用的编码方式是ASCII(美国信息交换标准代码)和Unicode(如UTF-8)。下面将介绍一些与串口文本模式相关的标准算法及概念:

字符编码

  • ASCII:这是最基础的字符编码方式,使用7位二进制数表示128个可能的字符,包括英文字母、数字、标点符号等。
  • UTF-8:一种变长编码方式,可以表示Unicode标准中所有字符,兼容ASCII,广泛用于现代系统。

这段PHP代码实现了字符串的Unicode编码和解码功能,并提供了辅助函数进行字符串分割和标准Unicode编码转换。具体功能如下:

  • unicode_decode:将JSON格式的字符串解码为普通字符串。
  • str_split_unicode:按指定长度分割字符串为数组,支持UTF-8字符。
  • stardand_unicode:将字符串转换为标准的Unicode编码格式。
  • unicode_encode:将字符串转换为大写的Unicode编码。
<?php
/**
 * unicode解码
 * @param $str
 * @return mixed|string
 */
function unicode_decode($name) {
    $result = '';

    $json = '{"str":"' . $name . '"}';
    $arr = json_decode($json, true);
    if (!empty($arr)) {
        $result = $arr['str'];
    }

    return $result;
}

//字符串按照文字长度分割成数组
function str_split_unicode($str, $length = 0) {
    if ($length > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $length) {
            $ret[] = mb_substr($str, $i, $length, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}

//转成标准的unicode编码
function stardand_unicode($chinese) {
    $arr = str_split_unicode($chinese, 4);
    $res = array_map(function ($value) {
        return '\u' . $value;
    }, $arr);
    return implode('', $res);
}

/**
 * unicode编码
 * @param $str
 * @return string
 */
function unicode_encode($chinese) {
    $result = json_encode($chinese);
    return strtoupper(str_replace(['"', '"', '\u'], "", $result));
}

echo "<pre>";
echo unicode_encode('测试接收短信')."<br/>";
print_r(unicode_decode(stardand_unicode('6D4B8BD563A5653677ED4FE1')));
echo "</pre>";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值