如何获取 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">
我的问题是,我想获取带有特殊字符(如 ä、ü、ö 等)的字符串的长度。该字符串保存在一个变量中。
我试图用 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">