php截取中文字符串不乱码的方法

 利用php内置方法mb_substr截取中文不乱码,使用起来非常简单,大家参考使用吧 

GBK编码截取示例
 
代码如下:
$str = '我是谁';  //gbk编码的字符串
echo mb_substr($str, 0, 1, 'gbk'); //输出 我
 
 
mb_substr方法比substr多一个参数,用来指定字符串编码。
 
utf-8编码截取示例
 
[code]
$str = '我abc是谁';  //utf-8编码的字符串
echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a
[/code
 
中英混合也完全没有问题。
 
友情提示
 
使用的时候要注意php文件的编码,和网页显示时的编码。
 
使用这个mb_substr方法要事先知道字符串的编码,如果不知道编码,就需要判断,mbstring库还提供了mb_check_encoding来检验字符串编码,但还不完善。
 

时间: 2024-12-09 07:12:21

php截取中文字符串不乱码的方法的相关文章

php截取中文字符串不乱码的方法_php实例

GBK编码截取示例 复制代码 代码如下: $str = '我是谁';  //gbk编码的字符串echo mb_substr($str, 0, 1, 'gbk'); //输出 我 mb_substr方法比substr多一个参数,用来指定字符串编码. utf-8编码截取示例 [code]$str = '我abc是谁';  //utf-8编码的字符串echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a[/code 中英混合也完全没有问题. 友情提示 使用的时候要注意

php substr()函数截取中文字符串乱码

php截取中文字符串出现乱码,这是最近发现的事情,先前我曾经写过一篇关于自动生成meta信息的文章 ,那篇关于利用php截取文章前多少字作为description方法,但是出现了IE6无法加载CSS的现象,这里 做一个补充.   首先要明确这么一个问题,之所以会出现IE6偶尔无法加载CSS的现象,是因为文件出现了乱码,导致后 面的加载CSS的link无法被IE6正确解析.因此就看到了一个纯HTML页面,没有CSS,赤裸裸! 明确了问题,剩下的问题就好解决了,就是防止乱码,既然万戈所提供的函数出现

Python实现简单截取中文字符串的方法

 本文实例讲述了Python实现简单截取中文字符串的方法.分享给大家供大家参考.具体如下: web应用难免会截取字符串的需求,Python中截取英文很容易: ? 1 2 3 >>> s = 'abce' >>> s[0:3] 'abc' 但是截取utf-8的中文机会截取一半导致一些不是乱码的乱码.其实utf8截取很简单,这里记下来作为备忘 ? 1 2 3 4 #-*- coding:utf8 -*- s = u'中文截取' s.decode('utf8')[0:3].e

PHP截取中文字符串方法总结

  程序一:PHP截取中文字符串方法 由于网站首页以及vTigerCRM里经常在截取中文字符串时出现乱码(使用substr),今天找到一个比较好的截取中文字符串方法,在此与大家共享. function msubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0)

实用技巧:PHP截取中文字符串的问题

技巧|问题|中文|字符串 以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数 3. 特别适用于用htmlspecialchars()进行过编码的字符串 4.

PHP截取中文字符串的问题

问题|中文|字符串    以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考:      程序说明:   1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些   2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数   3. 特别适用于用htmlspecialchars()进

旧题新貌:PHP截取中文字符串的问题

以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数 3. 特别适用于用htmlspecialchars()进行过编码的字符串 4. 能正确处理GB2312中

PHP截取中文字符串的问题_PHP编程

以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况.但中英文混合.特殊符号等问题总是存在,现在写一个比较全面的,仅供参考: 程序说明: 1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些 2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数 3. 特别适用于用htmlspecialchars()进行过编码的字符串 4. 能正确处理GB2312中

php截取中文字符串函数实例

 这篇文章主要介绍了php截取中文字符串函数,实例分析了php针对中文字符串操作的技巧,注意utf-8与gb2312编码的转换问题,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下:   代码如下: <?php //中文字符串截取 function substr_zh($string,$sublen,$start=0,$code='UTF-8'){ if($code=='UTF-8'){ $pa = "/[x