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 goorm→免费韩国 美国 NAT VPS 速度一般 10韩国VPS[主机]
- 补货 CloudCone→512M 内存套餐 20 美元每年的套餐又补货全球[VPS测评]
- 便宜 Virmach 特价套餐→1 核 512M 内存 15G SSD 全球[VPS测评]
- 特价促销 DediPath→所有架构 VPS 全场 5 折优惠 hybr全球[VPS测评]
- 2019 年搬瓦工最新网址全球[VPS测评]
- 疯狂猜成语 图猜成语日历上三个日子是太阳剩下的都是冰块是什么成语?全球[VPS测评]
- virmach→$27 月 e3-1270v3 16g 内存 1T 硬盘全球[VPS测评]
- 优惠 阿里云双十二活动→特惠满减 最高 12000 元 送淘现金红包 云全球[VPS测评]
- 1fichier→€15 年 100TB 空间 支持 FTP WebDA虚拟空间(主机)
- JQuery ajax 中 serialize()方法增加自定义参数全球[VPS测评]
- 疯狂猜成语 图猜成语一个大的逆字和一个小的首字是什么成语?全球[VPS测评]
- Name.com→.xyz 域名 年付 0.99 美金;最长可注册 10全球[VPS测评]
- TenVM→28.8 元 月 512MB 内存 10GB SSD 空间 虚拟空间(主机)
- 腾讯云免费领取 100 元无门槛代金券全球[VPS测评]
- php 高效统计 txt 大文件行数函数全球[VPS测评]
- 明恒互联(明恒云)双十一促销 全场8折 山东高防云2G2H 带100G(全球[VPS测评]
- Zimple → 10$ 月 1核1G25G硬盘 1T流量 新加坡 泰国全球[VPS测评]
- BinaryRacks-$2.5每月 1核1G内存20G 空间 1T流量虚拟空间(主机)
- 拼多多入局跨境电商平台,首站美国;奈雪的茶在上海建第二总部;pidan“美国VPS[主机]
- 中概股扫描网传拼多多正筹备跨境电商平台首站登陆美国美国VPS[主机]
- Fatal error: Allowed memory size of 全球[VPS测评]
- JGKVM促销,美国cn2vps服务器价格再创新低,平均6.5元/月起美国VPS[主机]
- 缓解云计算人才焦渴,苏州工业园区用三年引得源头活水来全球[VPS测评]
- 酷锐云元旦钜惠:大量香港/美国vps优惠码,香港1核2G云主机仅20元/美国VPS[主机]
- tudcloud:全场7折,香港不限流量VPS,Windows系统,LiWINDOWS
- 免备案服务器对权重和网站排名有影响吗?全球[VPS测评]
- 翔云网络怎么样?香港云服务器优惠99/月,国内4核4G高防服务器6800香港VPS[主机]
- 米上云:免备案香港云服务器,全场75折优惠码,香港高防vps月付23元起香港VPS[主机]
- 微基主机:1核1G香港云服务器,100Mbps/香港CN2直连/KVM/香港VPS[主机]
- locvps:香港cn2vps(葵湾机房),2核2G40g硬盘,8折优惠WINDOWS
转载请注明原文地址:http://140.238.13.167:12355/read-205556.html











