新手关于mb_strlen的有关问题
新手关于mb_strlen的问题。
不太明白这三次调用的返回值。。
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php echo mb_strlen("我的名字") . "<br/>"; //12 echo mb_strlen("我的名字","UTF-8") . "<br>"; //4 echo 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>"; //12 echo mb_strlen("我的名字","UTF-8") . "<br>"; //4 echo 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脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++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類別的isLetterOrDigit()函數來判斷字元是否為字母或數字在Java程式設計中,我們經常需要對字元進行一些操作和判斷。其中一個常見的需求是判斷一個字元是否是字母或數字。 Java提供了Character類別的isLetterOrDigit()函數來幫助我們實作這個功能。 Character類是一個包裝類,用於對字元進行操作和判斷。

Java文件解讀:Character類別的isAlphabetic()方法詳解一、概述在Java的Character類別中,isAlphabetic()方法用於判斷給定字元是否為一個字母字元。它傳回一個布林值,true表示給定字符是一個字母字符,false表示給定字符不是一個字母字符。本篇文章將對這個方法的使用和原理進行詳細解析,並提供程式碼範例幫助讀者更好地理解

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

使用Java的Character.isLetterOrDigit()函數判斷字元是否為字母或數字在Java中,我們經常需要判斷一個字元是否為字母或數字。為了簡化這個過程,Java提供了一個內建函數Character.isLetterOrDigit(),可以幫助我們快速完成這個判斷。 Character.isLetterOrDigit()函式接受一個字元作為參
