Если максимальная длина HTML равна 110, почему я могу ввести 114 символов?
-
13-09-2019 - |
Вопрос
<input type="text" id="title" name="title" size="50" maxlength="110" />
Видите ли, максимальная длина равна 110, но я был шокирован, когда обнаружил, что ввожу 114 символов, когда использую
echo strlen($title);
Есть какие-нибудь идеи?
Кстати, то, что я ввел, было Японский текст.Что случилось?
Решение
Японский текст, скорее всего, использует многобайтовую кодировку символов.Поэтому вы должны использовать mb_strlen().
С наилучшими пожеланиями, Фабиан
Другие советы
Что случилось?
Обработка строк PHP, которая основана на предположении, что 1 символ = 1 байт, и оставляет программисту самому заботиться о кодировках везде и не забывать использовать более поздние функции mb_ * всякий раз, когда имеет дело со строками, которые могут использовать многобайтовые кодировки.
maxlength - это просто блокировка браузера, но ее можно обойти любым способом, в том числе с помощью кодировки unicode.Вам лучше предоставить для этого серверный элемент управления