Это то, что руководство MySQL говорит о конечных пробелах:
Обработка конечных пробелов
версия-зависимая. Начиная с MySQL 5.0.3,
концевые пробелы сохраняются, когда
значения хранятся и извлекаются, в
соответствие стандарту SQL. До
MySQL 5.0.3, завершающие пробелы
удалены из значений, когда они
хранится в столбце VARCHAR; этот
означает, что пробелы также отсутствуют
из полученных значений.
Поскольку ваш вопрос говорит о том, что MySQL не пересекает конечные пробелы, я предполагаю, что ваша версия ниже 5.0.3. Подумайте об использовании типа TEXT для вашего столбца; они сохраняют висячие места. TEXT будет обрабатывать кодирование и декодирование строки , поэтому вам не нужно беспокоиться о многобайтовых символах.
ТЕКСТ работает медленнее, чем VARBINARY. Если фактические данные показывают, что производительность неприемлема, вам, возможно, придется выбрать VARBINARY (или BLOB-объект). В этом случае вам нужно сохранить строку в определенной кодировке, например UTF-8 . Пока все ваши клиенты используют одинаковую кодировку, это будет хорошо работать для многобайтовых символов. Протестируйте своих клиентов с разными региональными настройками:)