在PHP中经常使用substr来进行字符串的截取,但是当我们用它来实现对中文字符进行截取的时候则会发生乱码问题,比如说:

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>

输出结果为�;

原因分析:substr函数原型为string substr ( string $string , int $start [, int $length ] ),其中$length表示返回字节长度,而一个中文占两个字节,对于一个UTF-8的中文字符,会把它当做3个字节来处理。

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>

也就是说我们可以用令$length为3,这样就会成功返回一个“今”字。这样的话如果中文和英文混杂的话则需要我们好好地计算一下$length了。

那么有更好的解决办法吗?Php给出了另外的函数mb_strlen和mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>

输出结果为:the length is:6,the substr is:今天天气
mb_strlen函数原型为int mb_strlen(string string_input, string encode);encode默认为UTF-8,它会将为UTF-8编码的中文字符算作一个

注意:mb_strlen与mb_substr并不是PHP的核心函数,使用前需要打开php.ini中的extension=php_mbstring.dll这一项

参自:点击打开链接

PHP中substr截取中文乱码解决方案相关推荐

  1. RStudio中,出现中文乱码问题的解决方案

    RStudio中,出现中文乱码问题的解决方案 参考文章: (1)RStudio中,出现中文乱码问题的解决方案 (2)https://www.cnblogs.com/nxld/p/6098987.htm ...

  2. mysql设置数据库显示汉字_在CMD中操作mysql数据库出现中文乱码解决方案

    百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 . 其实,只要保证cmd客户端和MySQL两者编码一致即可. ...

  3. php乱码解决方案,PHP中文乱码解决方案

    PHP中文乱码解决方案 前言 PHP中文乱码是PHP开发中的常见问题之一,中文乱码现像有时发生在网页本身,有些产生在于MYSQL交互的过程中,有时与操作系统有关,下面进行总结. 一. PHP网页的编码 ...

  4. Spring MVC POST中文乱码解决方案

    2019独角兽企业重金招聘Python工程师标准>>> POST中文乱码解决方案 1.自己编写一个filter,来实现编码,代码如下: 1 public class Characte ...

  5. mysql中文乱码解决方案_Mysql中文乱码解决方案

    Mysql中文乱码解决方案 时间:2017-07-11     来源:华清远见JAVA学院 中文乱码问题一直是我们编程过程中比较常见又让人头疼的问题,但是只要按照标准进行配置,就能很好的避免出现中文乱 ...

  6. JSP中文乱码解决方案了解和TOMCAT中文乱码解决

    java 中文乱码终极解决方案 首先,确保你的数据库是支持中文的.把数据库的编码方式设置能支持中文的,如GB2132,utf-8等,而且经过测试后确实能写入中文且正常显示.这样就就保证了数据库确实是支 ...

  7. php怎么截取中文第一个字符串,php中怎么截取中文字符串

    php中如何截取中文字符串? 众所周知php原生函数substr是不支持截取中文字符串的.下面的代码提供了多种截取php中文字符串的方法. 1. 截取GB2312中文字符串 0xa0) { $tmps ...

  8. JPS网页中文乱码解决方案

    JPS网页中文乱码解决方案 1 查看源文件页头 2 查看head标签 3 查看mysql数据库链接编码格式设置 4 查看数据库 4.1 修改字符编码 4.2 重新建表指定相应的编码 1 查看源文件页头 ...

  9. linux python乱码_linux下python中文乱码解决方案详解

    linux下python中文乱码解决方案详解 发布时间:2020-09-06 20:24:49 来源:脚本之家 阅读:68 1. 场景描述 linux服务器下安装了Anaconda3,执行Pyhton ...

最新文章

  1. android adb 控制手机,adb 控制手机动作
  2. Caffe学习系列(12):训练和测试自己的图片
  3. c语言javapython哪个好-C#、C++、Java、Python 选择哪个好?
  4. [Java] super关键字:引用父类成员
  5. mysql数据备份mysqldump
  6. JavaScript实现http地址自动检测并添加URL链接
  7. atm取款机的简单程序代码_LeNet:一个简单的卷积神经网络PyTorch实现
  8. ivar layout 相关知识点
  9. SQL Server事务日志体系结构
  10. 华为云龙api自动化工具_聊聊华为GDE刚发布的一体化低门槛开发平台ADC 2.0
  11. python中的urllib模块中的方法
  12. 台达b3伺服参数设置方法_台达伺服基本参数设置
  13. 零基础成为网络工程师经验分享,附完整学习路线
  14. iOS 真机调试包(最新 16.1 真机调试包)
  15. 单片机c语言小车转圈,用51单片机编写的智能小车全程前进的C程序
  16. BeCJK输入法移植
  17. Spring 框架远程代码执行漏洞(CVE-2022-22965)
  18. 搭建Free NAS环境
  19. length()和strlen()
  20. 软件设计师(二):操作系统基本原理

热门文章

  1. 【备忘录】BADI_ACC_DOCUMENT增强实现
  2. 定义交货类型(Delivery Types)
  3. 一些基本的ABAP技巧
  4. 输入记忆功能如何恢复
  5. 自己动手搭建Git服务器-SCM-Manager
  6. 谈一个优秀的美工需要掌握哪些技能
  7. 计算出前一期间XXXX物料的期末结算
  8. SAP系统中凭证涉及日期
  9. 使用特殊的技术更新数据库(ABAP)
  10. 统计内表行数常用的三种方法