Как я могу получить длину строки UTF-8 PHP?

Моя проблема в том, что я хочу получить длину строки со специальными символами (например, ä, ü, ö и т. Д.). Эта строка сохраняется в переменной.
Я пытался получить длину с mb_strlen($string, 'UTF-8')); но он возвращается неправильно ..
Но я думаю, что у меня есть подход к решению проблем ..

Потому что, когда я пишу строку, которая находится в этой переменной, в mb_strlen сам, как
mb_strlen('äöü', 'UTF-8')); правильная длина возвращается. Так что, возможно, что-то не так с кодировкой переменной (переменная заполняется вводом пользователя)

0

Решение

Звучит как вход ($string) в другой кодировке — вероятно iso-8859-1 (особенно если mb_strlen() == strlen()).

Если $string пришел из формы ввода, вам необходимо убедиться, что форма в публикации в формате UTF-8. Если не указано иное, по умолчанию часто используется iso-8859-1.

Это делается в приличных браузерах:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]