Home  >  Article  >  Backend Development  >  PHP method to implement Unicode encoding mutual conversion

PHP method to implement Unicode encoding mutual conversion

墨辰丷
墨辰丷Original
2018-05-23 13:51:151921browse

这篇文章主要介绍了PHP实现Unicode编码相互转换的方法,结合实例形式分析了Unicode编码与解码的相关实现与使用技巧,需要的朋友可以参考下

具体如下:

<?php
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码,默认utf-8
* $prefix 编码后的前缀,默认""
* $postfix 编码后的后缀,默认";"
*/
function unicode_encode($str, $encoding = &#39;utf-8&#39;, $prefix = &#39;&#39;, $postfix = &#39;;&#39;) {
 //将字符串拆分
 $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(&#39;utf-8&#39;, &#39;UCS-4&#39;, $value)), 16, 10) .$postfix;
 }
 return $unicodestr;
}
/**
* $str Unicode编码后的字符串
* $decoding 原始字符串的编码,默认utf-8
* $prefix 编码字符串的前缀,默认""
* $postfix 编码字符串的后缀,默认";"
*/
function unicode_decode($unistr, $encoding = &#39;utf-8&#39;, $prefix = &#39;&#39;, $postfix = &#39;;&#39;) {
 $arruni = explode($prefix, $unistr);
 $unistr = &#39;&#39;;
 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(&#39;UCS-2&#39;, $encoding, $unistr);
}
$str = "PHP编程:www.jb51.net";
$unistr = unicode_encode($str);
$unistr2 = unicode_decode($unistr);
echo $unistr . &#39;<br />&#39;;
echo $unistr2 . &#39;<br />&#39;;
$unistr = unicode_encode($str,&#39;GBK&#39;,&#39;\\u&#39;);
$unistr2 = unicode_decode($unistr,&#39;GBK&#39;,&#39;\\u&#39;);
echo $unistr . &#39;<br />&#39;;
echo $unistr2 . &#39;<br />&#39;;

以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

PHP中使用微秒计算脚本执行时间例子_javascript技巧

jquery+php实现搜索框自动提示_jquery

用php将网页图片批量下载到本地代码实例

The above is the detailed content of PHP method to implement Unicode encoding mutual conversion. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn