PHP实现Unicode编码相互转换的方法示例

发布时间 - 2026-01-11 00:53:43    点击率:

本文实例讲述了PHP实现Unicode编码相互转换的方法。分享给大家供大家参考,具体如下:

<?php
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码,默认utf-8
* $prefix 编码后的前缀,默认"&#"
* $postfix 编码后的后缀,默认";"
*/
function unicode_encode($str, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
 //将字符串拆分
 $str = iconv("UTF-8", "gb2312", $str);
 $cind = 0;
 $arr_cont = array();
 for ($i = 0; $i < strlen($str); $i++) {
 if (strlen(substr($str, $cind, 1)) > 0) {
  if (ord(substr($str, $cind, 1)) < 0xA1) { //如果为英文则取1个字节
  array_push($arr_cont, substr($str, $cind, 1));
  $cind++;
  } else {
  array_push($arr_cont, substr($str, $cind, 2));
  $cind+=2;
  }
 }
 }
 foreach ($arr_cont as &$row) {
 $row = iconv("gb2312", "UTF-8", $row);
 }
 //转换Unicode码
 foreach ($arr_cont as $key => $value) {
 $unicodestr.= $prefix . base_convert(bin2hex(iconv('utf-8', 'UCS-4', $value)), 16, 10) .$postfix;
 }
 return $unicodestr;
}
/**
* $str Unicode编码后的字符串
* $decoding 原始字符串的编码,默认utf-8
* $prefix 编码字符串的前缀,默认"&#"
* $postfix 编码字符串的后缀,默认";"
*/
function unicode_decode($unistr, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
 $arruni = explode($prefix, $unistr);
 $unistr = '';
 for ($i = 1, $len = count($arruni); $i < $len; $i++) {
 if (strlen($postfix) > 0) {
  $arruni[$i] = substr($arruni[$i], 0, strlen($arruni[$i]) - strlen($postfix));
 }
 $temp = intval($arruni[$i]);
 $unistr .= ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);
 }
 return iconv('UCS-2', $encoding, $unistr);
}
$str = "PHP编程:www.";
$unistr = unicode_encode($str);
$unistr2 = unicode_decode($unistr);
echo $unistr . '<br />';
echo $unistr2 . '<br />';
$unistr = unicode_encode($str,'GBK','\\u');
$unistr2 = unicode_decode($unistr,'GBK','\\u');
echo $unistr . '<br />';
echo $unistr2 . '<br />';

PS:下面测试过这个函数比较好用,该代码需要在utf-8编码环境下运行

function unicode_encode($name) {//Unicode编码
 $jsonarr = array($name);
 $jsonstr = json_encode($jsonarr);
 if (empty ($jsonstr))
 return '';
 return substr($jsonstr,2,-2);
}
function unicode_decode($name) {//Unicode解码

 $json = '{"str":"' . $name . '"}';
 $arr = json_decode($json, true);
 if (empty ($arr))
 return '';
 return $arr['str'];

}

$test = "\u811a\u672c\u4e4b\u5bb6";
echo "unicode解码:".unicode_decode($test)."<br/>";
echo "unicode编码:".unicode_encode('')."<br/>";

PS:这里再为大家提供几款Unicode编码转换操作相关工具供大家参考使用:

在线Unicode/中文转换工具:
http://tools./transcoding/unicode_chinese

Native/Unicode在线编码转换工具:
http://tools./transcoding/native2unicode

在线中文汉字/ASCII码/Unicode编码互相转换工具:
http://tools./transcoding/chinese2unicode

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # Unicode编码  # 转换  # Python3的unicode编码转换成中文的问题及解决方案  # js字符串与Unicode编码互相转换  # python实现unicode转中文及转换默认编码的方法  # JS实现的Unicode编码转换操作示例  # .Net(c#)汉字和Unicode编码互相转换实例  # C#将Unicode编码转换为汉字字符串的简单方法  # JavaScript中字符串与Unicode编码互相转换的实现方法  # PHP如何实现Unicode和Utf-8编码相互转换  # js unicode 编码解析关于数据转换为中文的两种方法  # C++11 Unicode编码转换  # 程序设计  # 转换工具  # 操作技巧  # 相关内容  # 感兴趣  # 数据结构  # 英文  # 给大家  # 好用  # 更多关于  # 所述  # 几款  # 面向对象  # 再为  # 讲述了  # 正则表达式  # ord  # foreach  # array_push  # string 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  ,南京靠谱的征婚网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何用VPS主机快速搭建个人网站?  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  如何在云主机上快速搭建网站?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Android自定义控件实现温度旋转按钮效果  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  怎么用AI帮你设计一套个性化的手机App图标?  Python制作简易注册登录系统  原生JS实现图片轮播切换效果  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何处理表单验证?(Requests代码示例)  如何在橙子建站中快速调整背景颜色?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何自定义建站之星网站的导航菜单样式?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  如何做网站制作流程,*游戏网站怎么搭建?  如何在阿里云ECS服务器部署织梦CMS网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  微信小程序 配置文件详细介绍  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何选择PHP开源工具快速搭建网站?  php json中文编码为null的解决办法  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何用PHP快速搭建高效网站?分步指南  Laravel如何自定义分页视图?(Pagination示例)  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  如何在宝塔面板中创建新站点?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  实例解析angularjs的filter过滤器  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  JS经典正则表达式笔试题汇总  使用Dockerfile构建java web环境  如何将凡科建站内容保存为本地文件?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Laravel如何为API编写文档_Laravel API文档生成与维护方法