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 相关文章推荐
一个用于网络的工具函数库
Oct 09 PHP
Windows下的PHP5.0详解
Nov 18 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
php静态文件生成类实例分析
Jan 03 PHP
js代码实现微博导航栏
Jul 30 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
php实现微信支付之退款功能
May 30 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
三种php连接access数据库方法
2013/11/11 PHP
php对数组排序代码分享
2014/02/24 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php生成随机数的三种方法
2014/09/10 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
javascript dom 操作详解 js加强
2009/07/13 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
小学五年级学生评语
2014/04/22 职场文书
激励员工的口号
2014/06/16 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
python process模块的使用简介
2021/05/14 Python
教你使用TensorFlow2识别验证码
2021/06/11 Python
Python编写nmap扫描工具
2021/07/21 Python