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+javascript液晶时钟
Oct 09 PHP
PHP 七大优势分析
Jun 23 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
PHP常见数组函数用法小结
Mar 21 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
php实现简单的守护进程创建、开启与关闭操作
Aug 13 PHP
Yii框架分页技术实例分析
Aug 30 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
Mootools 1.2教程 函数
2009/09/15 Javascript
JavaScript 加号(+)运算符号
2009/12/06 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
2010/04/25 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
js实现随机抽奖
2020/03/19 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python避免死锁方法实例分析
2015/06/04 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python 多个参数不为空校验方法
2019/02/14 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
品质标语大全
2014/06/21 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
公司开业主持词
2015/07/02 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
python实现高效的遗传算法
2021/04/07 Python