2013-02-01 2 views
6

Это то, что должно быть простым, но я не могу понять.Скрыть скрытый символ из строки

Этот сайт является кодировкой 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-Смита

+0

Что скриптовый язык вы используете? Можете ли вы включить код, используемый для удаления скрытых символов? – thaJeztah

+0

Спасибо, я отредактировал мое сообщение. –

+0

Я понял, что это был этот персонаж http://www.fileformat.info/info/unicode/char/92/index.htm Я просто не знаю, как его разбить. –

ответ

4

Вы можете попытаться взглянуть здесь; удалить контрольные символы?

Remove control characters from php String

+0

Спасибо, что нашли. Я пробовал кое-что там, но он все еще не работает. –

+0

Я принял ваш ответ, потому что это привело меня к осознанию того, что я тестировал вывод вместо того, что было первоначально введено. –

+1

@BillH вы можете обновить свой вопрос и добавить все, что вы сделали, чтобы решить проблему? Пытается сохранить качество StackOverflow :) – thaJeztah

1

это также работает, а

$chars = array("\r\n", '\\n', '\\r', "\n", "\r", "\t", "\0", "\x0B"); 
str_replace($chars,"<br>",$data); 
Смежные вопросы