【发布时间】:2012-06-17 13:01:44
【问题描述】:
假设 UTF-8 编码,以及 PHP 中的 strlen(),这个字符串的长度是否可能是 4?
我只对 strlen() 感兴趣,而不是其他函数
这是字符串:
$1�2
我在自己的电脑上测试过,验证了UTF-8编码,得到的答案是6。
我在 strlen 的手册中或我在 UTF-8 上读过的任何内容都没有看到任何可以解释为什么上面的某些字符会小于一个的内容。
PS:这个问题和答案(4)来自我在 Ebay 上购买的 ZCE 的模拟测试。
【问题讨论】:
-
strlen计算字节数,而不是字符数 -
UTF-8 字符是多字节字符,在使用
strlen时被视为多字节字符。使用php.net/manual/en/function.mb-strlen.php 获得预期结果。 -
@RemcoOverdijk utf-8 编码字符可以是 1-6 个字节长。
-
@Esailija 不正确,UTF-8 字符(编码代码点)最多可以有 4 个字节长。
-
@PavelRadzivilovsky 感谢指正