Если максимальная длина HTML равна 110, почему я могу ввести 114 символов?

StackOverflow https://stackoverflow.com/questions/1852567

Вопрос

<input type="text" id="title" name="title" size="50" maxlength="110" />

Видите ли, максимальная длина равна 110, но я был шокирован, когда обнаружил, что ввожу 114 символов, когда использую

echo strlen($title);

Есть какие-нибудь идеи?

Кстати, то, что я ввел, было Японский текст.Что случилось?

Это было полезно?

Решение

Японский текст, скорее всего, использует многобайтовую кодировку символов.Поэтому вы должны использовать mb_strlen().

С наилучшими пожеланиями, Фабиан

Другие советы

Что случилось?

Обработка строк PHP, которая основана на предположении, что 1 символ = 1 байт, и оставляет программисту самому заботиться о кодировках везде и не забывать использовать более поздние функции mb_ * всякий раз, когда имеет дело со строками, которые могут использовать многобайтовые кодировки.

maxlength - это просто блокировка браузера, но ее можно обойти любым способом, в том числе с помощью кодировки unicode.Вам лучше предоставить для этого серверный элемент управления

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top