mb_substr
程序员文章站
2024-01-29 12:50:16
...
问题
mb_substr
解决方法
$string = "*";
$mystring=mb_substr($string,0,6,'UTF-8');
echo $mystring;
复制代码在书上看到:UTF-8编码下面,一个中文汉字占用3个字节;GB2312/GBK编码下面一个汉字占用2个字节
那上面代码是不是就应该输出“中华”二字呢?
参考答案
输出“中环人民共和”
参考答案
那个6是字符数,不是字节数.
请仔细看手册-.-
参考答案
'UTF-8' 把这个去掉看看...
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
不传入encoding参数的话,
我记得是默认使用ini下的 mbstring.internal_encoding
如果mbstring.internal_encoding未设置,应该就是用Latin-1(iso-8859-1)
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
这样的话是一个中文字占用两个字节
如:echo $mystring=mb_substr($string,0,4);//结果:中华
echo $mystring=mb_substr($string,0,3 or 5);//结果:中华
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
对不起,我的错,我页面是GB2312的- -
页面改成UTF8后,把'UTF-8'去掉就是一个汉字三个字节。谢谢大家的帮忙
参考答案
原帖由 男人 于 2008-11-7 16:31 发表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=699902&ptid=89149]链接标记[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
对不起,我的错,我页面是GB2312的- -
页面改成UTF8后,把'UTF-8'去掉就是一个汉字三个字节。谢谢大家的帮忙
一个字符集可以向下包含字节数的字符,
例如gbk可以包含双字节字符和单字节字符.
utf8可以包含6,5,4,3,2,1(旧的是4,3,2,1)字节的字符.
因为不能确定一个字串中包含多字节还是单字节字符.
GBK环境: $string = "测ab试cd字0串";
$mystring=mb_substr($string,0,3,'GBK');
echo $mystring;
复制代码这个3返回的是字符数,设定的是字符数而且不是字节数.
唉~,说什么好呢,看你发了这么多关于多字节字符编码的帖,
到头来,还是没明白字符和字节还有字符编码的关系-.-
[ ]
参考答案
崩溃 -。 -
参考答案
谢谢, 豁然开朗……
mb_substr
解决方法
$string = "*";
$mystring=mb_substr($string,0,6,'UTF-8');
echo $mystring;
复制代码在书上看到:UTF-8编码下面,一个中文汉字占用3个字节;GB2312/GBK编码下面一个汉字占用2个字节
那上面代码是不是就应该输出“中华”二字呢?
参考答案
输出“中环人民共和”
参考答案
那个6是字符数,不是字节数.
请仔细看手册-.-
参考答案
'UTF-8' 把这个去掉看看...
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
不传入encoding参数的话,
我记得是默认使用ini下的 mbstring.internal_encoding
如果mbstring.internal_encoding未设置,应该就是用Latin-1(iso-8859-1)
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
这样的话是一个中文字占用两个字节
如:echo $mystring=mb_substr($string,0,4);//结果:中华
echo $mystring=mb_substr($string,0,3 or 5);//结果:中华
参考答案
原帖由 于安 于 2008-11-7 13:28 发表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=698924&ptid=89149]链接标记[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
'UTF-8' 把这个去掉看看...
对不起,我的错,我页面是GB2312的- -
页面改成UTF8后,把'UTF-8'去掉就是一个汉字三个字节。谢谢大家的帮忙
参考答案
原帖由 男人 于 2008-11-7 16:31 发表 [url=http://bbs.111cn.cn/redirect.php?goto=findpost&pid=699902&ptid=89149]链接标记[img]http://bbs.111cn.cn/images/common/back.gif[/img][/url]
对不起,我的错,我页面是GB2312的- -
页面改成UTF8后,把'UTF-8'去掉就是一个汉字三个字节。谢谢大家的帮忙
一个字符集可以向下包含字节数的字符,
例如gbk可以包含双字节字符和单字节字符.
utf8可以包含6,5,4,3,2,1(旧的是4,3,2,1)字节的字符.
因为不能确定一个字串中包含多字节还是单字节字符.
GBK环境: $string = "测ab试cd字0串";
$mystring=mb_substr($string,0,3,'GBK');
echo $mystring;
复制代码这个3返回的是字符数,设定的是字符数而且不是字节数.
唉~,说什么好呢,看你发了这么多关于多字节字符编码的帖,
到头来,还是没明白字符和字节还有字符编码的关系-.-
[ ]
参考答案
崩溃 -。 -
参考答案
谢谢, 豁然开朗……
上一篇: php实现aes加密类分享_php实例
下一篇: 用户登录之cookie信息安全小结
推荐阅读
-
mb_substr
-
浅析PHP substr,mb_substr以及mb_strcut的区别和用法_php技巧
-
自己写的php中文截取函数mb_strlen和mb_substr,
-
submithandler PHP中文处理 中文字符串截取mb_substr和获取中文字符串字数
-
php截断字符串函数mb_substr()范例
-
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数_php技巧
-
php函数substr(),mb_substr()及mb_strcut的区别分析
-
substr(),mb_substr()及mb_strcut的区别和用法(中文字符截取)
-
mb_substr中文日文长度相同,显示长度不同
-
自己写的php中文截取函数mb_strlen和mb_substr