php substr 中文截取乱码解决办法
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

在 php 中使用 substr 函数进行中文字符串截取时,有可能会产生乱码,因为中文的两种常用编码格式中:UTF-8 编码,每个汉字占 3 字节,而 GB2312 编码中,每个汉字占 2 字节,英文占 1 字节,这就导致很多时候 substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会把其后的..拉过来一起做一个字,所以出现了 php substr 中文乱码。
解决方法一:使用 mb_substr 函数。
mb_substr (PHP 4 >= 4.0.6, PHP 5, PHP 7) — 获取部分字符串
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。
解决方法二:编写自定义函数。
function sub_str($str, $length = , $append = true) { $str = trim($str); $strlength = strlen($str); if ($length == || $length >= $strlength) { return $str; //截取长度等于或大于等于本字符串的长度,返回字符串本身 } elseif ($length < ) //如果截取长度为负数 { $length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度 if ($length < ) { $length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度 } } if (function_exists('mb_substr')) { $newstr = mb_substr($str, , $length, EC_CHARSET); } elseif (function_exists('iconv_substr')) { $newstr = iconv_substr($str, , $length, EC_CHARSET); } else { //$newstr = trim_right(substr($str, , $length)); $newstr = substr($str, , $length); } if ($append && $str != $newstr) { $newstr .= '...'; } return $newstr; }猜你可能想看的VPS
- ZJI 新春 55 折→香港大埔 2XE5-2630L 32GB 1TB香港VPS[主机]
- 圣诞促销 RackNerd→512M 内存 11G SSD 2.5T 流全球[VPS测评]
- RAKsmart 开年大促优惠活动最后三天→E3-1230 服务器低至$全球[VPS测评]
- Skynode→€19 月 i3-2120 16G 内存 1TB 硬盘 全球[VPS测评]
- TMThosting→达拉斯高防服务器每月 47.5 美元起 西雅图高防全球[VPS测评]
- 数脉科技劳动节促销,香港 BGP 直连服务器,10M 无限流量,E3 E香港VPS[主机]
- 人太多了-Hosteons→洛杉矶 VPS 1 核 512M 内存 5G全球[VPS测评]
- 腾讯云秒杀→单核 2G2M 三年 680 元 单核 2G1M 年付 19全球[VPS测评]
- 疯狂猜成语 图猜成语一口水井里面坐着一只青蛙是什么成语?全球[VPS测评]
- 初春优惠 糖果主机→香港云服务器¥27.75 月起 虚拟主机新购最低可享香港VPS[主机]
- 真实测评 virmach 年付黑五 4.75 刀 512M 内存 10G全球[VPS测评]
- 疯狂猜成语 图猜成语两根竹子 棍子插在地上是什么成语?全球[VPS测评]
- 豪情云→14 元 月 1GB 内存 30GB SSD 空间 100GB 虚拟空间(主机)
- 腾讯云秒杀→个人上海云服务器年付 99 元起 企业用户 2C4G5M 三全球[VPS测评]
- 阿里云建站首选轻量应用服务器 香港节点 30M 峰值带宽¥864 3 年香港VPS[主机]
- WordPress5.2发布要求服务器配置不低于PHP5.6.20与My全球[VPS测评]
- Liteserver荷兰G口大硬盘VPS和AMD高性能VPS复活节七五折全球[VPS测评]
- [优惠]CloudCone 1810 闪购全球[VPS测评]
- WordPress去掉分类链接中category目录的两种方法全球[VPS测评]
- 香港云服务器的优势有哪些方面香港VPS[主机]
- HTML5绿色有机食品电商网站模板 - Organtio全球[VPS测评]
- CMCUCT:2核2GB/20GB香港ntt线路vps 6TB流量/1G香港VPS[主机]
- 邢志宏:加快推动高质量建设跨境电商综试区起势成势全球[VPS测评]
- 什么是云服务器?云服务器怎么登陆?全球[VPS测评]
- UCloud优刻得云服务器建站教程:香港云服务器购买优惠方法香港VPS[主机]
- 华为云香港企业级云服务器优惠:4核8G5M香港云服务器低至4764元/年香港VPS[主机]
- 尊云:河南BGP云服务器2核4G仅68.6元/月,823.2元/年;香港香港VPS[主机]
- 三优云uuuvps:春节促销,香港cn2 vps低至168元/年,多款配香港VPS[主机]
- 快快数据测评:香港CN2云服务器,2核/1G/5M带宽,低至24元/月香港VPS[主机]
- 什么是linux面板?常见的Linux控制面板有哪些?全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-214414.html











