php unicode编码和字符串互转的方法


Posted in PHP onAugust 12, 2020

php字符串转Unicode编码, Unicode编码转php字符

百度了很多,都一样, 要么不对, 要不就是只是把字符串的汉字转Unicode

经过多次试验查找, 找到了如下方法,

注意:字符串编码必须是utf-8,如果不是自行用icon转一下

//字符串转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 < count($matches[0]); $j++)
  {
   $str = $matches[0][$j];
   if (strpos($str, '\\u') === 0)
   {
    $code = base_convert(substr($str, 2, 2), 16, 10);
    $code2 = base_convert(substr($str, 4), 16, 10);
    $c = chr($code).chr($code2);
    $c = iconv('UCS-2', 'UTF-8', $c);
    $name .= $c;
   }
   else
   {
    $name .= $str;
   }
  }
 }
 return $name;
}
//Unicode编码转字符串
function unicode_decode2($str){
 $json = '{"str":"' . $str . '"}';
 $arr = json_decode($json, true);
 if (empty($arr)) return '';
 return $arr['str'];
}

echo unicode_encode('若水小站:qq963087326'),'<br>';
//结果\u82e5\u6c34\u5c0f\u7ad9\u003a\u0071\u0071\u0039\u0036\u0033\u0030\u0038\u0037\u0033\u0032\u0036

echo unicode_decode('\u82e5\u6c34\u5c0f\u7ad9\u003a\u0071\u0071\u0039\u0036\u0033\u0030\u0038\u0037\u0033\u0032\u0036');
//结果若水小站:qq963087326

总结

到此这篇关于php unicode编码和字符串互转的方法的文章就介绍到这了,更多相关php unicode编码和字符串互转内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
php递归json类实例
Dec 02 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 #PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 #PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 #PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 #PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 #PHP
php获取文件名称和扩展名的方法
Feb 07 #PHP
php 常用的系统函数
Feb 07 #PHP
You might like
php图片加中文水印实现代码分享
2012/10/31 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
轻松实现php文件上传功能
2017/02/17 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
JavaScript版代码高亮
2006/06/26 Javascript
js创建对象的方式总结
2015/01/10 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
python中Genarator函数用法分析
2015/04/08 Python
Python制作词云的方法
2018/01/03 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
基于Python 中函数的 收集参数 机制
2019/12/21 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2015应届毕业生求职信范文
2015/03/20 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python