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
- Excel 计算年龄方法 包含周岁和虚岁全球[VPS测评]
- Windows Server 2012 R2 解除文件下载限制WINDOWS
- ThinkPHP5 中 success 和 error 方法传参的办法全球[VPS测评]
- Virtono→€9.95 年 KVM-512MB 15GB 1TB 罗全球[VPS测评]
- 真实测评 咖啡主机→首月¥20 1 核 1G 20M 洛杉矶 CN2 G全球[VPS测评]
- Win10 访问共享时出现错误代码 0x80070035 是怎么回事?全球[VPS测评]
- DedeTag Engine Create File False 错误 全球[VPS测评]
- racknerd→网站改版 3 款便宜 VPS 促销 $16 年 KVM全球[VPS测评]
- 便宜 ¥25 月 2 核 CPU 1G 内存 20G SSD 10Mbp香港VPS[主机]
- 跑 BT 不错-Ikoula→€9.99 月 Celeron®G3900全球[VPS测评]
- 帝国 cms7.5 伪静态规则(nginx)全球[VPS测评]
- Data Ideas→$1.5 月 1GB 内存 10GB SSD 空间虚拟空间(主机)
- WordPress插件:WP Downgrade降级到旧版本或者升级到新全球[VPS测评]
- Ucloud云服务器官方补贴 个人新用户北上广低至¥77/年;香港低至¥香港VPS[主机]
- CloudCone VPS 复活节促销 1核512M年付14刀及简单评测全球[VPS测评]
- Digital-VM 西班牙vps 测试记录全球[VPS测评]
- Sunucu al → 5.3$ 月 土耳其 2C2G35G硬盘 ipv全球[VPS测评]
- BuyVM 拉斯维加斯 媒体解锁-中国特别版 → 无限流量 → 1G 2全球[VPS测评]
- 八成企业看好出海投资 防止“溺水”需重视这一点全球[VPS测评]
- 拼多多回应筹备跨境电商业务:不予置评全球[VPS测评]
- 原创解析:云计算含义及定义全球[VPS测评]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来!全球[VPS测评]
- 美云香港云服务器怎么样?1核1G香港云服务器价格99元/月香港VPS[主机]
- 魔方云:2021春节促销_香港CN2/美国CN2全年最高折扣75折/香港美国VPS[主机]
- tudcloud:香港vps/2核/2GB/20GB空间/不限流量/KV虚拟空间(主机)
- 香港cn2线路服务器哪里好?香港cn2服务器推荐哪家好?香港VPS[主机]
- 樊云:9折优惠,香港cn2 vps+(强制三网、50G高防);美国cn2美国VPS[主机]
- anyhk:香港HGC云服务器,1核/256MB/5GB SSD/600香港VPS[主机]
- 41云:香港bgp云服务器低至14元/月;香港三网CN2 GIA VPS香港VPS[主机]
- 腾讯云美国硅谷服务器/香港/新加坡:1核1G(Linux)云服务器仅28美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-214414.html











