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
一个php作的文本留言本的例子(一)
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
PHP 一个随机字符串生成代码
May 26 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
PHP5函数小全(分享)
Jun 06 PHP
php数据类型判断函数有哪些
Sep 23 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php根据年月获取季度的方法
Mar 31 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
PHP CURL使用详解
Mar 21 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 操作excel文件的方法小结
2009/12/31 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
PHP的全局错误处理详解
2016/04/25 PHP
利用php生成验证码
2017/02/23 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
盛大二次面试题
2016/11/18 面试题
会计电算化专业应届大学生求职信
2013/10/22 职场文书
成考报名单位证明范本
2014/01/16 职场文书
学校四群教育实施方案
2014/06/12 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
PHP 时间处理类Carbon
2022/05/20 PHP
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers