新手关于mb_strlen的有关问题
新手关于mb_strlen的问题。
不太明白这三次调用的返回值。。
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpecho mb_strlen("我的名字") . "<br/>"; //12echo mb_strlen("我的名字","UTF-8") . "<br>"; //4echo mb_strlen("我的名字","GBK") //6?>
代码保存在l.php里面,文件编码为utf8
关于mb_strlen 的第二个encoding参数。PHP手册上这么写的:
"The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used."
我想知道那个internal character encoding是指哪个编码,在哪里配置的。
还有,对于这个函数的返回值 是这么写的
"Returns the number of characters in string str having character encoding encoding . A multi-byte character is counted as 1. "
多字节的字符按1来计算。
那为干什么第一次调用 会返回12,第二次调用居然返回6了。。 不太明白,希望帮解释 一下,谢谢了!
------解决方案--------------------
------解决方案--------------------
- PHP code
echo mb_strlen("我的名字") . "<br>"; //12echo mb_strlen("我的名字","UTF-8") . "<br>"; //4echo mb_strlen("我的名字","GBK") //6<br><font color="#e78608">------解决方案--------------------</font><br>首先你的文件编码一定是utf-8,而且你的mb_internal_encoding是类似于ISO-8859-1<br>然后要知道1个utf8汉字为3字节,gb是2字节,mb_strlen把多字节字算作1,所以会得出<br><?php <br />echo mb_strlen("我的名字") . "<br>"; //未给定编码,按默认 ISO-8859-1 计算,一个utf8汉字为3<br>echo mb_strlen("我的名字","UTF-8") . "<br>"; //给定正确编码,一个汉字为1<br>echo mb_strlen("我的名字","GBK") //给定错误编码,GBK 一个汉字算2,但你的文件是utf8,所以为4 * 3 = 12字节 / 2 = 6个gbk字<br>?><div class="clear"> </div>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

1g内存是1024MB。g全称“GB”,中文意思为“吉字节”,而MB是指“兆字节”;GB和MB都是常使用在标示电脑硬盘、存储器等具有较大容量的储存媒介之储存容量,GB和MB换算率约等于1000(1024),即“1GB=1024MB”。

1MB的存储容量相当于2的20次方个字节,即1048576个字节。MB是计算机中的一种储存单位,读作“兆”;因为1MB等于1024KB,而1KB等于1024B(字节),因此1MB等于1048576(1024 *1024)个字节。

1g等于1024MB内存容量。g全称“GB”,中文意思为“吉字节”,是一种十进制的信息计量单位,常使用在标示电脑硬盘、存储器等具有较大容量的储存媒介之储存容量。GB和MB换算率约等于1000(1024),即“1GB = 1024MB”。

使用Java的Character.isDefined()函数判断字符是否为已定义字符在Java编程中,有时候需要判断一个字符是否为已定义的字符。为了方便,Java提供了Character类的isDefined()函数,可以帮助我们快速判断一个字符是否为已定义字符。本文将介绍这个函数的使用方法,并提供一些代码示例。Character类是Java中表示单个字符的

Java文档解读:Character类的isAlphabetic()方法详解一、概述在Java的Character类中,isAlphabetic()方法用于判断给定字符是否是一个字母字符。它返回一个布尔值,true表示给定字符是一个字母字符,false表示给定字符不是一个字母字符。本篇文章将对这个方法的使用和原理进行详细解析,并提供代码示例帮助读者更好地理解

Java使用Character类的isLetterOrDigit()函数判断字符是否是字母或数字在Java编程中,我们经常需要对字符进行一些操作和判断。其中一个常见的需求是判断一个字符是否是字母或数字。Java提供了Character类的isLetterOrDigit()函数来帮助我们实现这个功能。Character类是一个包装类,用于对字符进行操作和判断。

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

使用Java的Character.isLetterOrDigit()函数判断字符是否为字母或数字在Java中,我们经常需要判断一个字符是否为字母或者数字。为了简化这个过程,Java提供了一个内置函数Character.isLetterOrDigit(),可以帮助我们快速完成这个判断。Character.isLetterOrDigit()函数接受一个字符作为参
