Это то, что должно быть простым, но я не могу понять.Скрыть скрытый символ из строки
Этот сайт является кодировкой UTF-8.
У клиента возникли проблемы с заполнением формы на нашем веб-сайте. Вот пример данных, которые они ввели.
SPICER-SMITHS ПОТЕРЯЛИ
Это выглядит как обычная строка, но при копировании, что строка в приложение, например блокнотом ++ вы увидите «?» появляются в слове «SMITHS» («SMITH? S»).
Сценарий санирует поле и выполняет дополнительный шаг по удалению следующих символов: "\r\n", "\n", "\r", "\t", "\0", "\x0B"
.
Это не ловит этот скрытый характер.
Кто-нибудь знает, что здесь происходит?
EDIT: Я использую php. Вот функция, которую я использую, чтобы дезинфицировать поле:
function strip_hidden_chars($str)
{
$chars = array("\r\n", "\n", "\r", "\t", "\0", "\x0B");
$str = str_replace($chars," ",$str);
return preg_replace('/\s+/',' ',$str);
}
EDIT 2: @thaJeztah привел меня к ответу. Строка, которую я тестировал, - это выход из нашего билета поддержки после того, как клиент скопировал и вложил его из любого приложения, которое она использует. Фактический ввод был
SPICER-Смита
Что скриптовый язык вы используете? Можете ли вы включить код, используемый для удаления скрытых символов? – thaJeztah
Спасибо, я отредактировал мое сообщение. –
Я понял, что это был этот персонаж http://www.fileformat.info/info/unicode/char/92/index.htm Я просто не знаю, как его разбить. –