php 以问号切割字符串,php中文汉字字符串的截取问号_PHP教程

本文介绍了如何使用PHP处理中文字符串时避免乱码问题,通过实例演示了如何判断字符串编码并使用特殊字符补全确保汉字完整显示。推荐了针对UTF-8和GB2312编码的汉字截取函数,助您高效处理中文文本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汉字中文使用php自带函数截取有时会碰到有问号了,下面我们整理了几个非常不错的汉字中文精确截取实例。

php在操作字符串的问题时间无非两个问题:

1.判断字符串编码是gbk还是unicode。

2.对相应编码采取相应截取方法。

一般情况下我们使用substr截取汉字可能会遇到乱码问题。因为汉字是双字节的,当被截取了一个字节时,这个汉字就无法显示,乱掉了。

其实解决很简单,看下面的截取函数:

代码如下

//截取超长字符串

function curtStr($str,$len=30){

if(strlen($str)>$len){

$str = substr($str,0,$len);

$str .= chr(0) ."…";

return $str;

}

上面的chr(0)不是null

null是什么都没有,而chr(0)的值是0。表示成16进制是0×00,表示成二进制是00000000

虽然chr(0)不会显示出什么,但是他是一个字符。

当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0×81到0xff与0×00组合始终都显示为“空”

根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了

下面补充几个函数即可实现此两点以达到精确截取中文字符串的目的:

截取utf8编码的多字节字符串

代码如下

UTF-8、GB2312都支持的汉字截取函数

代码如下

http://www.bkjia.com/PHPjc/633112.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633112.htmlTechArticle汉字中文使用php自带函数截取有时会碰到有问号了,下面我们整理了几个非常不错的汉字中文精确截取实例。 php在操作字符串的问题时间无...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值