• 注册
  • 程序猿 程序猿 关注:0 内容:12

    PHP中文字符串反转编码错误解决方式

  • 查看作者
  • 打赏作者
    • 在使用PHP处理字符串反转的时候,我们第一反应是使用PHP的内置函数strrev来处理,思维上是没有问题的,但是我们需要知道一个问题,函数strrev是否可以处理中文汉字的字符串呢?带着疑问我们一起来看一下。

      一、strrev函数介绍

      1、定义:反转字符串

      2、用法:

      strrev(string)

      3、参数:必需传递参数。规定要反转的字符串

      4、适用版本:PHP4+

      5、示例

      <?php
          echo strrev("I love China!");?>

      6、运行结果

      !ianihC evol I

      二、实例测试

      1、测试英文字符串

      内容:I love China

      代码:

      <?php
          echo strrev("I love China");?>

      运行结果:

      ianihC evol I

      结论:可以正常将字符串进行转化,无任何异常。

      2、测试中文字符串

      内容:我爱中国

      代码:

      <?php
          echo strrev("我爱中国");?>

      运行结果:

      ��學䱈瑈�

      结论:无法将中文字符串进行转换,出现乱码情况

      3、测试英文+中文字符串

      内容:我爱China

      代码:

      <?php
          echo strrev('我爱China');?>

      运行结果:

      anihC��瑈�

      结论:可以将英文字符串进行正常反转,中文汉字部分依旧出现乱码情况。

      三、中文字符串反转解决方案

      方案一:使用mb_substr() 函数和mb_strlen函数相互结合对字符串进行循环截取拼合。

      示例代码:

      function mb_strrev($str){
          $r = '';
          for ($i = mb_strlen($str); $i>=0; $i--) {
              $r .= mb_substr($str, $i, 1);
          }
          return $r;}echo mb_strrev("我爱中国");echo mb_strrev("我爱China");echo mb_strrev("I love China");

      运行结果:

      国中爱我
      anihC爱我
      anihC evol I

      结论:此方法可以将字符串进行反转

      四、结论

      PHP内置函数strrev可以将纯字母类型的字符串进行反转,如果字符串内含有中文、中文符号则无法反转。需要使用函数相互结合方式进行反转。

      请登录之后再进行评论

      登录
    • 到底部
    • 实时动态
    • 换皮肤
    • 帖子间隔 侧栏位置:
      版权所有©(2022)ShenLin.ink All Rights Reserved. 粤ICP备2024205822号