How does PHP handle special characters like umlauts in string manipulation functions like substr()?

When working with special characters like umlauts in string manipulation functions like substr(), PHP may not handle them correctly due to character encoding issues. To ensure proper handling of special characters, it is important to use multibyte string functions like mb_substr() that support different character encodings.

// Example code snippet using mb_substr() to handle special characters like umlauts
$string = "Möglichkeiten";
$substring = mb_substr($string, 0, 5, 'UTF-8');
echo $substring; // Output: Mögli