Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie die Unicode-Kodierung in PHP

So konvertieren Sie die Unicode-Kodierung in PHP

藏色散人
藏色散人Original
2020-09-27 14:36:247507Durchsuche

php转换unicode编码的方法:首先创建一个PHP示例文件;然后通过“unicode_encode”方法将字符串转Unicode编码;最后使用“unicode_decode”方法将Unicode编码转字符串即可。

So konvertieren Sie die Unicode-Kodierung in PHP

推荐:《PHP视频教程

php字符串转Unicode编码, Unicode编码转php字符

百度了很多,都一样, 要么不对, 要不就是只是把字符串的汉字转Unicode

经过多次试验查找, 找到了如下方法,

注意:字符串编码必须是utf-8,如果不是自行用icon转一下

//字符串转Unicode编码
function unicode_encode($strLong) {
 $strArr = preg_split(&#39;/(?<!^)(?!$)/u&#39;, $strLong);//拆分字符串为数组(含中文字符)
 $resUnicode = &#39;&#39;;
 foreach ($strArr as $str)
 {
   $bin_str = &#39;&#39;;
   $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(&#39;/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/&#39;, &#39;$1$2$3&#39;, $bin_str);//正则截取, $bin_str应类似0100111101100000,如果是汉字"你"
   $unicode = dechex(bindec($bin_str));//返回unicode十六进制
   $_sup = &#39;&#39;;
   for ($i = 0; $i < 4 - strlen($unicode); $i++)
   {
     $_sup .= &#39;0&#39;;//补位高字节 0
   }
   $str = &#39;\\u&#39; . $_sup . $unicode; //加上 \u 返回
   $resUnicode .= $str;
 }
 return $resUnicode;
}
//Unicode编码转字符串方法1
function unicode_decode($name)
{
 // 转换编码,将Unicode编码转换成可以浏览的utf-8编码
 $pattern = &#39;/([\w]+)|(\\\u([\w]{4}))/i&#39;;
 preg_match_all($pattern, $name, $matches);
 if (!empty($matches))
 {
  $name = &#39;&#39;;
  for ($j = 0; $j < count($matches[0]); $j++)
  {
   $str = $matches[0][$j];
   if (strpos($str, &#39;\\u&#39;) === 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(&#39;UCS-2&#39;, &#39;UTF-8&#39;, $c);
    $name .= $c;
   }
   else
   {
    $name .= $str;
   }
  }
 }
 return $name;
}
//Unicode编码转字符串
function unicode_decode2($str){
 $json = &#39;{"str":"&#39; . $str . &#39;"}&#39;;
 $arr = json_decode($json, true);
 if (empty($arr)) return &#39;&#39;;
 return $arr[&#39;str&#39;];
}
 
echo unicode_encode(&#39;若水小站:qq963087326&#39;),&#39;<br>&#39;;
//结果\u82e5\u6c34\u5c0f\u7ad9\u003a\u0071\u0071\u0039\u0036\u0033\u0030\u0038\u0037\u0033\u0032\u0036
 
echo unicode_decode(&#39;\u82e5\u6c34\u5c0f\u7ad9\u003a\u0071\u0071\u0039\u0036\u0033\u0030\u0038\u0037\u0033\u0032\u0036&#39;);
//结果若水小站:qq963087326

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie die Unicode-Kodierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn