Maison développement back-end tutoriel php 新手关于mb_strlen的有关问题

新手关于mb_strlen的有关问题

Jun 13, 2016 pm 01:15 PM
character encoding mb quot 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
?>
Copier après la connexion


代码保存在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里面要用到别的DLL里面的函数 ,是不是等将这个DLL复制到 system32下面,然后再在php.ini里面加上
extension=php_fdf.dll 这样的代码才可以?

------解决方案--------------------
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>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Combien de Mo font 1 g de mémoire ? Combien de Mo font 1 g de mémoire ? Mar 16, 2023 pm 04:19 PM

1 Go de mémoire équivaut à 1024 Mo. g signifie « Go », qui signifie « gigaoctet » en chinois, et MB fait référence à « mégaoctet » ; Go et Mo sont tous deux couramment utilisés pour indiquer la capacité de stockage des disques durs d'ordinateur, des mémoires et d'autres supports de stockage de plus grandes capacités. le taux de conversion entre Go et Mo est approximativement égal à 1 000 (1 024), soit « 1 Go = 1 024 Mo ».

1 Mo de capacité de stockage équivaut à combien d'octets 1 Mo de capacité de stockage équivaut à combien d'octets Mar 03, 2023 pm 05:42 PM

1 Mo de capacité de stockage équivaut à 2 puissance 20 octets, soit 1 048 576 octets. Mo est une unité de stockage dans les ordinateurs, prononcée comme « méga » car 1 Mo est égal à 1 024 Ko et 1 Ko est égal à 1 024 Mo (octets), donc 1 Mo est égal à 1 048 576 (1 024 * 1 024) octets.

1g équivaut à combien de Mo de capacité de mémoire 1g équivaut à combien de Mo de capacité de mémoire Feb 03, 2023 pm 03:55 PM

1 g équivaut à 1 024 Mo de capacité de mémoire. Le nom complet de g est « GB », qui signifie « gigaoctet » en chinois. Il s'agit d'une unité décimale de mesure d'informations et est souvent utilisée pour indiquer la capacité de stockage des disques durs d'ordinateur, des mémoires et d'autres supports de stockage de plus grande capacité. Le taux de conversion entre Go et Mo est approximativement égal à 1000 (1024), soit « 1 Go = 1024 Mo ».

Utilisez la fonction Character.isDefined() de Java pour déterminer si un caractère est un caractère défini Utilisez la fonction Character.isDefined() de Java pour déterminer si un caractère est un caractère défini Jul 25, 2023 am 10:33 AM

Utilisez la fonction Character.isDefined() de Java pour déterminer si un caractère est un caractère défini. En programmation Java, vous devez parfois déterminer si un caractère est un caractère défini. Pour plus de commodité, Java fournit la fonction isDefined() de la classe Character, qui peut nous aider à déterminer rapidement si un caractère est un caractère défini. Cet article explique comment utiliser cette fonction et fournit quelques exemples de code. La classe de caractères représente un seul caractère en Java

Java utilise la fonction isLetterOrDigit() de la classe Character pour déterminer si un caractère est une lettre ou un chiffre. Java utilise la fonction isLetterOrDigit() de la classe Character pour déterminer si un caractère est une lettre ou un chiffre. Jul 24, 2023 pm 02:45 PM

Java utilise la fonction isLetterOrDigit() de la classe Character pour déterminer si un caractère est une lettre ou un chiffre. En programmation Java, nous devons souvent effectuer certaines opérations et jugements sur les caractères. L'un des besoins courants est de déterminer si un caractère est une lettre ou un chiffre. Java fournit la fonction isLetterOrDigit() de la classe Character pour nous aider à implémenter cette fonction. La classe Character est une classe wrapper utilisée pour exploiter et juger les caractères.

Interprétation de la documentation Java : explication détaillée de la méthode isAlphabetic() de la classe Character Interprétation de la documentation Java : explication détaillée de la méthode isAlphabetic() de la classe Character Nov 04, 2023 am 10:05 AM

Interprétation de la documentation Java : Explication détaillée de la méthode isAlphabetic() de la classe Character 1. Présentation Dans la classe Java Character, la méthode isAlphabetic() permet de déterminer si un caractère donné est un caractère alphabétique. Il renvoie une valeur booléenne, true indiquant que le caractère donné est un caractère alphabétique, false indiquant que le caractère donné n'est pas un caractère alphabétique. Cet article fournira une analyse détaillée de l'utilisation et du principe de cette méthode, et fournira des exemples de code pour aider les lecteurs à mieux comprendre

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

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

Utilisez la fonction Character.isLetterOrDigit() de Java pour déterminer si un caractère est une lettre ou un chiffre. Utilisez la fonction Character.isLetterOrDigit() de Java pour déterminer si un caractère est une lettre ou un chiffre. Jul 25, 2023 pm 04:22 PM

Utilisez la fonction Character.isLetterOrDigit() de Java pour déterminer si un caractère est une lettre ou un chiffre. En Java, nous devons souvent déterminer si un caractère est une lettre ou un chiffre. Afin de simplifier ce processus, Java fournit une fonction intégrée Character.isLetterOrDigit(), qui peut nous aider à compléter rapidement ce jugement. La fonction Character.isLetterOrDigit() accepte un caractère comme paramètre

See all articles