> 백엔드 개발 > PHP 튜토리얼 > PHP 학습: 유니코드와 일반 문자열을 서로 변환하는 방법

PHP 학습: 유니코드와 일반 문자열을 서로 변환하는 방법

little bottle
풀어 주다: 2023-04-06 08:48:02
앞으로
2854명이 탐색했습니다.

本篇文章主要讲述了unicode与普通字符串的相互转化,具有一定参考价值,感兴趣的朋友了解一下。

unicode转字符串

方法一:json

/**
   * unicode转字符串,通过json转化
   * @param $str
   * @return string
   */
  function unicode_decode_by_json($str)
  {
    $json = '{"str":"' . $str . '"}';
    $arr = json_decode($json, true);
    if (empty($arr)) return '';
    return $arr['str'];
  }
로그인 후 복사

方法二:

/**
   * unicode转中文
   * @param $data
   * @return null|string|string[]
   */
  function unicode_decode($data)
  {
    $rs = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data);
    return $rs;
  }

  function replace_unicode_escape_sequence($match)
  {
    return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
  }
로그인 후 복사

字符串转unicode

/**
   * @param  string $str 需转换字符,这里为单个字符
   * @return string
   */
  function get_unicode($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 .= &#39;0&#39;;//补位高字节 0

    return &#39;\\u&#39; . $_sup . $unicode; //加上 \u  返回
  }

  /**
   * 转化字符串为unicode
   * @param $str string 可单个/复数个
   * @return string
   */
  function unicode_encode($str)
  {
    $_arr_str = preg_split(&#39;/(?<!^)(?!$)/u&#39;, $str);//拆分字符串为数组(含中文字符)

    $_ret_unicode = &#39;&#39;;
    foreach ($_arr_str as $_str) $_ret_unicode .= get_unicode($_str);

    return $_ret_unicode;
  }
로그인 후 복사

测试效果:

 $_str_test = &#39;see,你看我哪里像好人&#39;;
  $_unicode = unicode_encode($_str_test);


  echo $_str_test . &#39; <b style="color: red">=></b> &#39; . $_unicode, &#39;<br><br>&#39;;
  echo $_unicode . &#39; <b style="color: red">=></b> &#39; . unicode_decode($_unicode), &#39;<br><br>&#39;;
  echo $_unicode . &#39; <b style="color: red">=></b> &#39; . unicode_decode_by_json($_unicode), &#39;<br><br>&#39;;
로그인 후 복사

相关教程:PHP视频教程

위 내용은 PHP 학습: 유니코드와 일반 문자열을 서로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿