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 相关文章推荐
php db类库进行数据库操作
Mar 19 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
PHP查询网站的PR值
Oct 30 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
php实现获取文章内容第一张图片的方法
Nov 04 PHP
php算法实例分享
Jul 14 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP INT类型在内存中占字节详解
Jul 20 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+MySQL的聊天室设计
2006/10/09 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python logging设置level失败的解决方法
2020/02/19 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
opencv实现图像几何变换
2021/03/24 Python
优秀的教师个人的中文求职信
2013/09/21 职场文书
生日寄语大全
2014/04/08 职场文书
工作求职信
2014/07/04 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
2014年护士长工作总结
2014/11/11 职场文书
2014年人大工作总结
2014/12/10 职场文书
美容院管理规章制度
2015/08/05 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python