Я разрабатываю веб-приложение с использованием MySQL и PHP. Некоторые пользователи будут китайцами, поэтому мне нужно протестировать мою программу с китайскими иероглифами. Поскольку китайские символы длиннее обычных символов ASCII, бывает, что поле MySQL может быть короче, чем строка с китайскими символами.
Я попытался ограничить длину ввода в два раза меньше, чем поле MySQL, как в примере ниже:
<input name='field_name' maxlength='5'> in HTML
field_name VARCHAR(10) in MySQL (all my field are encoded with utf8_unicode_ci)
Тем не менее, строка «好好 好好 好‘, состоящая из 5 символов, будет усечена.
Это важная проблема, потому что усеченные строки заканчиваются символом «�», а вызовы jQuery ajax (json) отклоняют ошибку.
Вот почему я хотел бы знать, как защитить эти входные данные на стороне клиента и сервера, чтобы целостность данных не была нарушена в любой ситуации (или, по крайней мере, отображалась, даже если она усечена).
Спасибо!
substr()
field_name при ответе на вызов ajax. (лучше изменить fileld_name в mysql, varchar 10 слишком мал.) - person jsxqf   schedule 21.07.2015