在PHP开发中会经常用到字符串截取,有的时候字符串截取会出现乱码的情况,那么怎么解决这个问题呢,其实也很容易

首先我们要了解关于中英文占多少字节的问题。

ASCII码:一个中文汉字占两个字节的空间。

UTF-8编码:一个中文(含繁体)等于三个字节。

Unicode编码:一个中文(含繁体)等于两个字节。

下面我们就通过几个简单的代码示例为大家详细介绍关于PHP截取中英字符串且无乱码的相关知识。

一、 substr() 截取字符串(是以字节为单位进行截取的)

ehco substr('PHP中文网', 0, 5);

substr()中第一个参数表示要截取的字符串,第二个参数表示从0位置开始截取,第三个参数表示截取长度。

截取“PHP中文网”前5个字节,结果如下:

如图显示乱码,也就是说当我们使用substr函数进行中英文字符串截取时,会出现乱码,为什么呢?因为substr函数截取字符串的单位是字节,在截取中文的时候会有不能完整截取的情况出现,所以会出现乱码的情况。

二、关于mb_substr()截取字符串

echo mb_substr('php中文网', 0, 5);

mb_substr:获取部分字符串。

截取“PHP中文网”前5个字符,结果如下:

如图截取了前五个字符,并且没有出现乱码。

注:mb_substr是根据字符数来执行截取字符串。

三、 mb_strcut() 截取字符串

echo mb_strcut("PHP中文网", 0, 7);

截取“PHP中文网”前7个字节,结果如下:

从图中可以看到,我们要截取7个字节,但是只显示截取了“PHP中”这6个字节。由于一个汉字等于三个字节,那么这里第7个字节就不会显示了。

综上所述,如果大家遇到要截取中文字符串并无乱码的需求时,可以选择后两种方法(mb_substr()和mb_strcut())

php字符串无乱码截取函数封装

/** * * 中英混合字符串长度判断 * @param unknown_type $str * @param unknown_type $charset */ function strLength( ...

php截取中文字符串无乱码的方法

利用php内置方法mb_substr截取中文不乱码,使用起来非常简单 <?php $str = '我喜欢laravel or yii2'; echo mb_substr($str, 0, 1, ...

PHP中文无乱码截取

正在上传文件反正无聊 就把php无乱码截取写出来吧` 参数说明 gbk    字符编码中,存储中文字符要2个字节 uft-8  字符编码中,存储中文字符要3个字节 0xa0  半个汉字 ord()—  ...

&lpar;实用篇&rpar;php中计算中文字符串长度、截取中文字符串的函数代码

在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务 ...

php中计算中文字符串长度、截取中文字符串

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...

PHP计算中文字符串长度 、截取相应中文字符串

PHP计算字符串长度     及其   截取相应中文字符串 计算字符长度: $gouWu = '美日汇http://www.hnzyxok.com/'; echo mb_strlen($gouWu,' ...

SQL Server 插入含有中文字符串出现乱码现象的解决办法

ELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')       --查询SQLServer编码格式的语句 下面 ...

php截取中文字符串时乱码问题

AD18 PCB中添加中文字符串显示乱码问题解决

该问题是由于字符串的自体类型设置问题,AD默认是[stroke],我们点击[TrueType]即可正常显示.PS:AD18搞啥呢,默认显示输入内容不行吗,找半天!!!

随机推荐

IIS发布站点错误收集&lpar;持续更新&rpar;

本文主要收集IIS在发布站点过程中遇到的错误,并提供解决办法.并亲测可行.如果您也在使用IIS发布站点的过程中遇到了一些问题,欢迎留言提问. (1.) HTTP错误500.21-Internal Se ...

vs2013单元测试第二部分

上次的随笔说还没弄懂,现在已经弄懂,就让我说说我的方法吧. 1.点击文件——>新建——>项目——>c#——>控制台应用程序,确定,之后如图所示 2.在一定位置写上要进行单元检测 ...

javascript事件有哪些?javascript的监听事件

事件类型: 1.界面事件 onload:描述文档,图片,css已经frame,object加载完毕时触发,window.onload window.onload = function(){ //代表图 ...

Aizu 2306 Rabbit Party DFS

Rabbit Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view. ...

Find them&comma; Catch them&lpar;POJ 1703 关系并查集&rpar;

Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38668   Accepted: ...

ICMP协议Ping命令的应用

ICMP的全称是 Internet Control Message Protocol ,它是TCP/IP协议族的一个子协议,属于网络层协议,用于在IP主机.路由器之间传递控制消息.从技术角度来讲,就是 ...

webstorm基础使用

因为需要用到sass自动编译,从sublime转到了webstorm.现在自我感觉sublime需要的插件太多,而webstorm很多功能都帮你及成,不需要你去找插件和安装插件. webstorm的好 ...

解题:九省联考2018 秘密袭击CoaT

题面 按照*Miracle*的话来说,网上又多了一篇n^3暴力的题解 可能是因为很多猫题虽然很好,但是写正解性价比比较低? 直接做不可做,转化为统计贡献:$O(n)$枚举每个权值,直接统计第k大大于等 ...

cogs 330&period; &lbrack;NOI2003&rsqb; 文本编辑器

★★★   输入文件:editor2003.in   输出文件:editor2003.out   简单对比 时间限制:2 s   内存限制:128 MB [问题描述] 很久很久以前,DOS3.x的程序 ...

sprintf拼接字符串的问题

] = {}; char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'}; char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', ...

php 中文字符串截取无乱码,php实现中文字符串无乱码截取相关推荐

  1. 截取含有中文、Emoji表情、特殊符号的字符串

    在码代码时经常会遇到截取字符串的问题,有时候字符串会包含中文.Emoji表情.以及一些特殊符号,这时使用String的substring()进行截取操作,结果就有可能是乱码或者不符合要求.这是因为JV ...

  2. 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码?

    在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码? Posted on 2008-07-13 12:00 尹合磊 阅读(1902) 评论(0)  编辑 收藏 所属分类: ASP.N ...

  3. php substr_replace 中文乱码,php substr_replace替换字符串一些实例_PHP教程

    substr_replace与str_replace有一点像就是直接把字符串替换一部份了,下面小编来给各位同学介绍一下 操作方法. substr_replace() 函数把字符串的一部分替换为另一个字 ...

  4. spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...

    一.前言 关于字符串工具类StringUtils实现字符串是否包含isChinese中文.是否包含isMessyCode乱码.常规数据类型转换.替换/删除/判空.两字符串数组mergeStringAr ...

  5. Lua截取utf-8编码的中英文混合字符串

    参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度)utf8sub("你好1世界哈哈",2,5) = 好 ...

  6. mfc 中文乱码转换为正常中文_中文编码转换

    中文编码转换--6种编码30个方向的转换 1.问题提出 在学编程序时,曾经有人问过"你可以编一个记事本程序吗?"当时很不屑一顾,但是随着学习MFC的深入,了解到记事本程序也并非易事 ...

  7. mysql存储过程中文乱码_mysql存储过程中文乱码

    MySQL 中存储过程 中文乱码问号??? mysql 中文乱码一直是一个老大难的问题,接下来一一解决!!!! 数据库存储数据乱码 存储过程中数据乱码 001 数据库存储数据乱码 相信大家遇到最多就是 ...

  8. python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解

    Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...

  9. java根据一个 号截取_java截取最后一个号前的字符串

    java截取最后一个号前的字符串 [2021-01-31 02:35:59]  简介: php中文字符串截取乱码的解决办法:首先创建一个PHP示例文件:然后定义一个"utf_substr&q ...

最新文章

  1. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )
  2. ANSYS Products 19.1 安装教程
  3. 使用 wxImage 为 OpenGL 加载纹理
  4. postgresql 基本语法
  5. Java动态代理的两种实现方法
  6. SAP ABAP SE16 and SE17
  7. android emmc 命令,使用CoreELEC的ceemmc工具将系统写入emmc
  8. Python第十二章-多进程和多线程01-多进程
  9. 春秋时期被误解的人才。
  10. linux音乐关机,在Deepin操作系统中关闭或者更改开机关机音乐的方法
  11. 创建第一个Scrapy项目
  12. 《逻辑说服力》— 综合素质提升书籍
  13. python金融股票市场数据分析神器TA-Lib学习使用
  14. 干货 | 100大产业链全景图
  15. 新型单词记忆法汇总(沪江英语):
  16. 字节跳动技术团队年度 TOP10 技术干货,陪你度过不平凡的 2020
  17. 导出chrome扩展插件,crx文件
  18. 还在为乱七八糟的桌面而忧桑吗
  19. iOS二维码扫描/识别
  20. VBA中数组72变(随心所欲复制)

热门文章

  1. “泛在电力物联网”究竟是什么?
  2. twofish密码算法
  3. 劳动法与社会保障法考试重点
  4. 带超时的recv函数
  5. Footprint Expert PRO 22 - 自定义封装 - mark点
  6. C++中类型转换详解
  7. c 语言实践pdf 吕强,吕强
  8. 婴儿哭声分类识别实现(准确率99.3%)(深度学习、迁移学习、音频分类、tensorflow)
  9. 2018年设计师都在用的PS切图插件--摹客
  10. QuartsII-基于VHDL的设计以及基于VHDL和原理图的混合设计