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 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
php getsiteurl()函数
Sep 05 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 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设计模式中的工厂模式
2008/06/12 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
深入理解python函数递归和生成器
2016/06/06 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
python中property和setter装饰器用法
2019/12/19 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
学校安全工作制度
2014/01/19 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
中药专业自荐信范文
2014/03/18 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
公务员个人总结
2015/02/12 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python