UTF-8 and strlen()
Trying to find out the length of a string and wondering why the values are often wrong?
UTF-8 characters can be multi-byte, and strlen() returns the length of the string in bytes, which means the string ååå would actually have a “length” of 6.
One solution is to use the multibyte function “mb_strlen” instead, you will need to have PHP compiled with this – but it seems to be a default in later versions.
E.g.
$value = "ÅØÆbob"; echo strlen($value); // 9 echo mb_strlen($value, 'UTF-8'); // 6 |