我的问题是,我想得到一个带有特殊字符的字符串的长度(如ä,ü,ö等)。该字符串保存在变量中。
我试图用mb_strlen($string, 'UTF-8'));
得到长度,但它返回错了..
但我认为我有一个解决问题的方法..
因为当我把这个变量中的String写成mb_strlen时,就像我一样
mb_strlen('äöü', 'UTF-8'));
返回正确的长度。因此,变量的编码可能有问题(变量由用户的输入填充)
答案 0 :(得分:0)
听起来输入($string
)处于另一种编码中 - 可能是iso-8859-1(特别是如果mb_strlen() == strlen()
)。
如果$string
来自表单输入,则需要确保以UTF-8格式发布表单。除非指定,否则默认值通常为iso-8859-1。
这可以通过以下方式通过不错的浏览器来完成:
<form action="form.php" method="POST" accept-charset="utf-8">