• 全都有综合资源网

    分享赚钱

    一个专业的免费资源网

    每天更新100+优质资源

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方微信群

用于 Unicode 编码转换的 PHP 方法

技术文章 每日更新
2024-6-27 14:27 87人浏览 0人回复
原作者: 全都有综合资源网 来自: 全都有综合资源网 收藏 分享 邀请
摘要

code?php/**功能:字符Unicode编码转换*参数一:要转码的字符串*参数二:是否转码ASCII字符默认不转码**/functionunicode_encode($string,$isAll=false){$string=iconv('UTF-8','UCS-2',$string);//将字符编码转换为UCS ...

 
layui-box layui-code-view" style="margin-top: 10px; margin-bottom: 10px; padding: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); white-space: pre-wrap; overflow-wrap: break-word; box-sizing: content-box; position: relative; font-size: 12px; border-width: 1px 1px 1px 6px; border-style: solid; border-color: rgb(226, 226, 226); border-image: initial; background-color: rgb(242, 242, 242); color: rgb(51, 51, 51); font-family: "Courier New";">

code

  1. <?php
  2. /*
  3.  *  功用: 字符Unicode编码转换
  4.  *  参数一: 要转码的字符串
  5.  *  参数二: 能否转码ASCII字符 默许不转码
  6.  *  
  7.  */
  8. function unicode_encode($string, $isAll = false){
  9.     $string = iconv('UTF-8', 'UCS-2', $string); // 将字符编码转换为 UCS-2
  10.     $strLen = strlen($string) - 1;   // 获得字符长度
  11.     $retStr = '';
  12.     for ($i = 0; $i < $strLen; $i = $i + 2){
  13.         $codeA = ord($string[$i]);  // 取出第一位 字节
  14.         $codeB = $string[$i+1]; // 取出第二位字符
  15.         // 假如第一位字节大于0则暗示是扩大字符(汉字) 否则为 ASCII字符
  16.         if($codeA > 0){
  17.             $retStr.= '&#' . ($codeA * 256 + ord($codeB)) . ';';
  18.         }else{
  19.             // 判定ASCII字符能否转码
  20.             $retStr.= $isAll ? '&#' . ord($codeB) . ';' : $codeB;
  21.         }
  22.     }
  23.     return $retStr;
  24. }
  25. /*
  26.  *  功用: Unicode编码转换字符
  27.  *  参数一: 要转码的字符串
  28.  *  参数二: 能否转码ASCII字符 默许不转码
  29.  *  
  30.  */
  31. function unicode_decode($string){
  32.     $pregStr = '/&#([0-9]+);/';
  33.     // 停止婚配并在出错时返回
  34.     if(preg_match_all($pregStr, $string, $codeList, PREG_OFFSET_CAPTURE) === false) return false;
  35.     $retStr = '';
  36.     $repOffset = 0;
  37.     foreach ($codeList['1'] as $key => $value){
  38.         // 大于255 则说明是2位字节 (汉字)
  39.         $code = intval($value['0']);    // 转换为整数
  40.         // 假如大于255 则说明有两个字节
  41.         $codeB = $code % 256;   // 取第二个字节的内容
  42.         if($code > 255){
  43.             $codeA = ($code - $codeB) / 256;    // 计较出第一个字节
  44.             $newStr = chr($codeA) . chr($codeB);    // 拼接成一个字符
  45.             $newStr = iconv('UCS-2', 'UTF-8', $newStr); // 将字符编码转换为 UCS-2
  46.         }else{
  47.             $newStr = chr($codeB);    // 拼接成一个字符
  48.         }
  49.         // 替换掉本来的内容
  50.         $repLen = strlen($codeList['0'][$key]['0']);
  51.         $repStart = $codeList['0'][$key]['1'];
  52.         $string = substr_replace($string, $newStr, $repStart - $repOffset, $repLen);
  53.         $repOffset+= $repLen - strlen($newStr);
  54.     }
  55.     return $string;
  56. }
  57. $str = '锄禾日当午,HanDi禾下土;举头望明月,12345...';
  58. // 停止编码
  59. $enStr =  unicode_encode($str, true);
  60. echo $enStr . "\n";
  61. // 停止解码
  62. $deStr = unicode_decode($enStr);
  63. echo $deStr . "\n";
  64. ?>

用于 Unicode 编码转换的 PHP 方式2031 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-27 14:27

©版权免责声明
1、本站所有资源均来自用户上传及互联网。 如有侵权,请联系站长!
2、分享目的仅供大家学习交流。 下载后必须在24小时内删除!
3、不得用于非法商业目的或违反国家法律。 否则,后果自负!
4、本站提供的源代码、模板、插件等资源不包含技术服务。 敬请谅解!
5.如果出现无法下载、无效或有广告的链接,请联系管理员寻求帮助!
6、本站资源价格仅用于赞助,所收取的费用仅用于维持本站日常运营!
7、如果遇到加密压缩包,请使用WINRAR解压。 如果遇到无法解压的加密压缩包,请联系管理员!
8、由于精力有限,很多源代码无法详细测试(解密),部分源代码无法区分为病毒或误报,所以没有进行修改。 请在使用前进行筛选。

路过

雷人

握手

鲜花

鸡蛋
热门教程
专业的免费源码资源分享平台
每天更新100+资源

招募版主发工资

  • 官方在线客服

    QQ客服:红颜

    点击交谈

    在线客服:良子

    点击交谈

    在线客服:闵月

    点击交谈
  • 上海市虹口区海伦中心B座4F4055-4056室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信公众号

    加入官方微信

一个专业的免费源码资源互联网分享平台 ©2001-2024 https://www.douyouvip.com全都有综合资源网( 豫ICP备2024057239号-1 )赞助会员|网站地图 HTML
全都有综合资源网,WordPress主题PHP源码,PHP网站源码,网站模板,软件源码,网站源码免费下载,免费网站源码,网站源码模板,免费网站源码下载,wp免费源码,wp免费主题下载,PHP企业网站源码,软件源码下载