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
- Kuai Che Dao→$35.6 半年 512MB 内存 10GB 虚拟空间(主机)
- 五一促销 edgeNAT→8 核 8G 40G SSD 4Mbps 不限韩国VPS[主机]
- 企鹅小屋→75 元 年 512MB 内存 15GB SSD 空间 500虚拟空间(主机)
- ZJI→香港云地&邦联服务器 65 折 香港葵湾&大埔服务器 75 折香港VPS[主机]
- discuz X3.1 X3.2 X3.3 论坛搬家完美详细教程全球[VPS测评]
- MySQL 修改字段类型或长度全球[VPS测评]
- php 随机生成字符串的函数全球[VPS测评]
- 特价 Cloudcone→洛杉矶 MC 机房独立服务器 6 折优惠 CN独立服务器[U]
- SpartanHost→$4 月 2 核 1GB 内存 15GB NVM虚拟空间(主机)
- VULTR→新用户送 100 美元 KVM 16 个机房 支持支付宝微信全球[VPS测评]
- CentOS7 创建并启用 RAMDISK(内存盘)全球[VPS测评]
- 企鹅小屋→300 元 月 256MB 内存 10GB SSD 空间 10虚拟空间(主机)
- ZJI 双十一 充值送 香港高防五折 阿里云香港线路立减270元香港VPS[主机]
- 许诺云双十一 全场优惠 充值300送50 香港CN2GIA线路美国高防 美国VPS[主机]
- EchoNode → 5€ 月 2C2G20G硬盘 1Gbps不限流量 全球[VPS测评]
- Serverum-俄罗斯圣彼得堡 拉脱维亚 5$ 月 1核1G10GB内全球[VPS测评]
- vps-szerver-匈牙利布达佩斯 1C2G20GB 2.25$ 月全球[VPS测评]
- 漂亮的Css3响应侧边栏菜单,动画风格侧边栏导航菜单样式全球[VPS测评]
- 1分钟快速读懂云计算全球[VPS测评]
- 如何设置指定路径跳转指定域名?全球[VPS测评]
- 华凯易佰同比扭亏跨境电商行业回暖H2旺季将至|中报追踪全球[VPS测评]
- 硅云:香港云服务器2核2G5M促销1999元/3年起,香港虚拟主机1G空虚拟空间(主机)
- 亿速云11.11上云狂欢节活动:2核4G国内/香港云服务器,价格999元香港VPS[主机]
- 精编案例丨游戏行业转型升级迫在眉睫,云计算助力打造下一代游戏体验全球[VPS测评]
- 葫芦云:香港CN2/洛杉矶GIA高防vps,24元/月;1核/1GB/2虚拟空间(主机)
- 舍利云:香港美国vps云服务器/BGP线路元旦全场9折,低至36元/月美国VPS[主机]
- 野草云服务器怎么样?香港CN2+BGP带宽30M月付19元香港VPS[主机]
- 香港服务器租用哪里有?便宜的香港服务器租用香港VPS[主机]
- 硅云香港主机怎么样?硅云香港云服务器价格多少钱一年?香港VPS[主机]
- wikihost微基主机服务,香港稳定虚拟主机8折,3.73元/月起,C香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-214414.html











