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 相关文章推荐
JAVA/JSP学习系列之七
Oct 09 PHP
开源SNS系统-ThinkSNS
May 18 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
IP攻击升级,程序改进以对付新的攻击
Nov 23 PHP
php后门URL的防范
Nov 12 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
php抽象方法和普通方法的区别点总结
Oct 13 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模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php中使用explode查找某个字符是否存在的方法
2011/07/12 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
介绍Python中的__future__模块
2015/04/27 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
python3实现随机数
2018/06/25 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
行政人事专员岗位职责
2014/03/05 职场文书
奠基仪式策划方案
2014/05/15 职场文书
建议书的格式及范文
2015/09/14 职场文书
资产移交协议书
2016/03/24 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS