如何获取 UTF-8 字符串 PHP 的长度?

How do I get the length of UTF-8 string PHP?

我的问题是,我想获取带有特殊字符(如 ä、ü、ö 等)的字符串的长度。该字符串保存在一个变量中。 我试图用 mb_strlen($string, 'UTF-8')); 获取长度,但它返回错误.. 但我想我有一个解决问题的方法..

因为当我自己将这个变量中的字符串写入 mb_strlen 时 mb_strlen('äöü', 'UTF-8')); 返回了正确的长度。所以也许变量的编码有问题(变量由用户输入填充)

听起来输入 ($string) 是另一种编码 - 可能是 iso-8859-1(尤其是 mb_strlen() == strlen())。

如果$string来自表单输入,您需要确保以UTF-8格式发布的表单。除非指定,否则默认值通常是 iso-8859-1。

这是用体面的浏览器完成的:

<form action="form.php" method="POST" accept-charset="utf-8">