Введите строку UTF-32 в таблицу UTF-8.

Я создаю сеть в ASP.NET (C#), а таблицы моей базы данных - UTF-8. Также у меня есть регистрационная форма с полями "имя пользователя"

Может ли человек ввести строку UTF-32 в поле имени пользователя и вызвать ошибку? Как решить проблему? Эти символы UTF-32 имеют более 0 символов (stringLenght пропущен).


person Joe    schedule 08.05.2015    source источник


Ответы (1)


Вы должны смотреть на всю цепочку, по которой проходят данные. какой ввод у вас есть, как переносятся символы, какая кодировка имеет ваш API и так далее....

UTF-32 - это просто еще одна «презентация» UTF-8, для получения более подробной информации я настоятельно рекомендую сообщение Джоэла Спольски об этом Абсолютный минимум, который обязательно должен знать каждый разработчик программного обеспечения о Unicode и наборах символов

person Boas Enkler    schedule 08.05.2015
comment
ASP.NET и моя сеть работают с UTF-8. В любом случае, пользователь не может вводить символы UTF-8. - person Joe; 08.05.2015
comment
На самом деле UTF-32 и UTF-8 являются кодировками для кодовых точек Unicode. Все, что пользователь вводит на веб-сайте, будет интерпретироваться в соответствии с настройками кодирования этого веб-сайта и кодом, обрабатывающим ввод. Если есть несоответствие кодировки, код, надеюсь, поймает это... - person DevSolar; 22.07.2015