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
- 疯狂猜成语 图猜成语一个而两个志上面还有一个圆圈是什么成语?全球[VPS测评]
- 做站推荐 标准互联→4 核 8G 内存 100G SSD 高防国内 VP全球[VPS测评]
- losangelesvps→低至$25 年的 KVM 系列 VPS 洛杉全球[VPS测评]
- 搬瓦工 $29.88 年 2G 内存 40G SSD 1T 流量 KVM全球[VPS测评]
- 一键更换 Linux 软件源脚本→SuperUpdate.sh全球[VPS测评]
- Hostodo 便宜美国 NVMe 硬盘 VPS,高 IO 读写,1G 美国VPS[主机]
- [黑五]Virtono→全场 VPS 虚拟主机 7 折 罗马尼亚 VPS全球[VPS测评]
- 双十一 OneVPS→全场 VPS 限时 7 折优惠 日本 新加坡机房 日本VPS[主机]
- 疯狂猜成语 图猜成语一颗心流出很多血是什么成语?全球[VPS测评]
- 双十一 CUBECLOUD→新加直 中国香港 美国洛杉矶全部 88 折优美国VPS[主机]
- ThinkPHP5 使用 TCPDF 生成 PDF 文件全球[VPS测评]
- spinservers 限时 48 小时闪购,美国双路 E5-2630L美国VPS[主机]
- 标准互联→全场云服务器 8 折 香港云服务器年付 256 元起 美国年付美国VPS[主机]
- VPSMS 520 促销,洛杉矶安畅 gia 终身 6.8 折起,最高 美国VPS[主机]
- 黑五 ZJI→全新上线香港葵湾 香港大埔 六折 香港葵湾独立服务器低至 独立服务器[U]
- 搬瓦工美国 cn2 vps 全线补货,终身最高 6.58%折扣,10gb美国VPS[主机]
- 用ImgURL免费图床程序自建WordPress图床全球[VPS测评]
- 5个许多网站站长都会忽视的搜索引擎SEO技巧全球[VPS测评]
- 美国知名 VPS 商家 linode 现在支持 PayPal 和 Goo美国VPS[主机]
- WordPress 常用的自定义文字广告、图片广告代码全球[VPS测评]
- quadranet机房 独立服务器买二赠一,3G DDoS高防,$39起独立服务器[U]
- Parkinhost俄罗斯抗诉VPS六折促销,KVM架构,无视版权,不限全球[VPS测评]
- 6种样式社交论坛网站HTML5模板 - Social全球[VPS测评]
- 小欢互联:洛杉矶高防vps年付138元,香港CN2线路月付8元起,1核/香港VPS[主机]
- 六一云:香港CN2/洛杉矶高防85折优惠,CDN半年优惠,充值返利送水杯香港VPS[主机]
- 腾讯云海外服务器优惠活动:全球购1核2G美国云服务器低至318元/年美国VPS[主机]
- LOCVPS:香港vps八折优惠中,双十一预热,充值充600送150,六香港VPS[主机]
- 德斯拉科技:香港物理机900元/月,香港VPS/E5CPU,88元起,美美国VPS[主机]
- 华为S2300 系列交换机如何修改密码?全球[VPS测评]
- MineServer:日本CN2云主机/香港CN2云主机,大带宽vps,日本VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-217406.html











