php无乱码截取字符串,php实现中文字符串无乱码截取

在PHP开发中,使用substr()函数截取中英文字符串时可能会出现乱码。为解决这个问题,可以使用mb_substr()和mb_strcut()函数。mb_substr按字符数截取,避免乱码;而mb_strcut则根据字节截取,需要注意中文字符占3个字节。在处理中文字符串时,推荐使用这两个函数。
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

一、 substr() 截取字符串

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

substr:返回字符串的子串。

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

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

a415ab3cb6dba26d423a20c4c7db7cea.png

如图显示乱码,也就是说当我们使用substr函数进行中英文字符串截取时,会出现乱码。

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

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

mb_substr:获取部分字符串。

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

a7140ca4407a6ad71e03715482b4c7be.png

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

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

三、 mb_strcut() 截取字符串

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

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

d7b87949eb728c81652c952cb7a33aff.png

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

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

原文:https://www.cnblogs.com/skl-bobo/p/10487641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值