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
- Netcup→€20.99 月 6 核独享 32GB 内存 480GB 虚拟空间(主机)
- 增配通知 Vultr→不加价为 VPS 套餐增加 30%-220%的 S虚拟空间(主机)
- 景文互联→云服务器全场 8 折 年付内存翻倍 充值 1000 元送 30全球[VPS测评]
- RAKsmart 三网接入 300G 防御 无视 cc 防御 10~10全球[VPS测评]
- LOCVPS 新上香港云地 KVM 全场 8 折 2G 内存套餐月付 4香港VPS[主机]
- HKhoster→$69 月 1GB 内存 30GB 空间 不限流量 1虚拟空间(主机)
- servaRICA→$15 月 3 核 3GB 内存 2TB 空间 不限虚拟空间(主机)
- 新商家慎重-QSVM→10 元 月 50Mbps 宽带 500G 流量 全球[VPS测评]
- ping.cat监测各大国外VPS主机商网络质量全球[VPS测评]
- WordPress网站上传图片出现http报错解决办法全球[VPS测评]
- 如何注册解析.tk,.ml,.ga,.cf,.gq等免费域名全球[VPS测评]
- Gandi.net新注册.COM域名只需7元/首年带免费Whois隐私保全球[VPS测评]
- 如何在begin主题实现评论自动排第一全球[VPS测评]
- Digital-VM 全场VPS 6折促销,提供10Gbps大带宽VPS全球[VPS测评]
- GreenCloudVPS 荷兰阿姆斯特丹机房,2核4G/10Gbps大全球[VPS测评]
- Luxvps → 3€ 月 德国 1C4G30G硬盘 1Gbps1T流量全球[VPS测评]
- signaltransmitter 黑五 2C4G50G 25T流量50全球[VPS测评]
- BugetNode → 7G内存 70G储存 7T流量 荷兰高配鸡 月付全球[VPS测评]
- 2019黑五: Krypt ION- 2C 2G RAM 60G SSD全球[VPS测评]
- CombCloud,香港沙田cn2vps终身七折起,高质量网络稳定低延迟香港VPS[主机]
- 阿里云服务器一年价格多少钱?阿里云服务器报价全球[VPS测评]
- SugarHosts糖果主机双十一大促销 虚拟主机最高6折优惠全球[VPS测评]
- 六一云:香港CN2/洛杉矶高防/CDN,“返利+折扣”双优惠,折上折送实香港VPS[主机]
- WordPress去掉分类链接中category目录的两种方法全球[VPS测评]
- 阳帝云双十二活动:1核1G10M大宽带香港BGP云服务器,月付14元香港VPS[主机]
- 自适应bootstrap左侧导航可关闭全球[VPS测评]
- SugarHosts:虚拟主机三折起,VPS五折起,续费也可以享受优惠全球[VPS测评]
- 奇异互动,2核4G香港云服务器仅655元/年,注册领550元新手大礼包香港VPS[主机]
- 欧路云:加拿大/法国/新加坡高防vps,2核/2G/100M首月仅14元WINDOWS
- 企鹅小屋:香港VPS限时3折优惠,香港沙田CN2,原生IP,年付486.香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-208490.html











