Php 当我';我试图得到我的字符串中的字符数,即£&引用;对于strlen(),为什么返回2?

Php 当我';我试图得到我的字符串中的字符数,即£&引用;对于strlen(),为什么返回2?,php,character-encoding,Php,Character Encoding,我想在html5中创建最大长度的输入 我有一个文本,我必须转换成带有输入的形式。输入的最大长度在文本中定义。但斯特伦返回2个字符 有人知道为什么吗 $strTEST = "£"; $i = strlen($strTEST); var_dump($i); // display 2 发件人: 注: strlen()返回字节数,而不是 字符串中的字符 如果您转到并搜索: Unicode code point character hex name U+00A3

我想在html5中创建最大长度的输入

我有一个文本,我必须转换成带有输入的形式。输入的最大长度在文本中定义。但斯特伦返回2个字符

有人知道为什么吗

$strTEST = "£";
$i = strlen($strTEST);
var_dump($i); // display 2
发件人:

注:

strlen()返回字节数,而不是 字符串中的字符

如果您转到并搜索:

Unicode code point     character    hex      name

U+00A3                 £            c2 a3    POUND SIGN
您可以看到十六进制表示需要两个字节来存储此特定字符

解决这个问题的另一个办法是使用

发件人:

返回字符串str中包含字符的字符数 编码多字节字符计为1


Google:multibyte characters如果要计算UTF-8字符,也可以使用