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
- VirMach→$27 月-E3-1240v1 16GB 1TB 10T全球[VPS测评]
- js 与 jquery 获取 span 标签中的内容全球[VPS测评]
- 翼支付 老用户助力领权益金全球[VPS测评]
- Bootstrap-table 服务端分页无效以及服务端分页后不显示页码全球[VPS测评]
- €6 月 高频 CPU 2G 内存 50G SSD 500Mbps 不限全球[VPS测评]
- 送美元 RackNerd 春节促销→登陆 购买最高送$188 红包 独立独立服务器[U]
- 大盘鸡 $45 年 756M 内存 150G 硬盘 0.6T 流量 1G全球[VPS测评]
- Pacificrack→$9.89 年 1GB 内存 15GB SSD 虚拟空间(主机)
- 双十二返场活动 LOCVPS→日本大阪 Xen vps 终身六五折优惠 日本VPS[主机]
- BuyVM→$3.5 月 KVM-1GB 20GB 无限流量 拉斯维加斯全球[VPS测评]
- 无 IPV4-vServer.site→€0.49 月 1 核 512M全球[VPS测评]
- phpexcel 导出中文文件名乱码的解决办法全球[VPS测评]
- 最后三天RAKsmart→日本新品上 线 E5-2630L 仅售$99 日本VPS[主机]
- 搬瓦工 CN2 GIA 补货季付 29.9 美元起 支持支付宝全球[VPS测评]
- [5.1]DediPath 全场 VPS 四折 洛杉矶 1Gbps 不限独立服务器[U]
- spinservers→便宜高配服务器 定制优惠 $299 2*E5-2全球[VPS测评]
- BudgetVM→洛杉矶高防云服务器 29 美元起 E3-1230 4G全球[VPS测评]
- mysql 查询重复数据 mysql 查询表中重复记录全球[VPS测评]
- RackNerd洛杉矶高防VPS 1G内存/18G硬盘/1Gbps/60全球[VPS测评]
- A400互联黑五洛杉矶9929 VPS,三网强制联通高端AS9929线路全球[VPS测评]
- WordPress插件推荐:Compact MCE比原生更好用全球[VPS测评]
- 50KVM VPS免费自助换IP功能全球[VPS测评]
- BuyVM → 卢森堡 DMCA友好 无限流量全球[VPS测评]
- 网站迁移服务器是如何运作的?新手站长看完这篇文章,很容易就能看完。全球[VPS测评]
- Weebly网站迁移到WordPress的实操上手。全球[VPS测评]
- 人力资源管理系统前端Web模板 - SmartHR全球[VPS测评]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来!全球[VPS测评]
- 印象云怎么样?85折香港安畅CN2vps带宽3M月付23元香港VPS[主机]
- Vultr新用户100美金 最新活动来啦!新用户充值活动来了,充100美全球[VPS测评]
- Fatal error: Allowed memory size of 全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-217406.html











