Я знаю, что это общий вопрос, но все, что я нашел, похоже, удаляет пробелы.
Я ищу регулярное выражение, которое уберет непечатаемые символы БЕЗ изменения любого пробела. Это функция, через которую фильтруется весь пользовательский ввод, что означает, что все символы, которые вы обычно можете набирать на клавиатуре, действительны. Пример: акценты, которые вы видите на испанском языке, действительны. В основном все, что вы можете отобразить, используя кодировку UTF 8.
Поскольку это SQL Server , я не думаю, что подход SET NAMES UTF8 сработает.
Вот что у меня есть.
function stripNonPrintable($input)
{
return preg_replace('/[\x00\x08\x0B\x0C\x0E-\x1F]/', '', $input);
}