Questo è qualcosa che dovrebbe essere semplice ma non riesco a capire.Striscia di caratteri nascosti dalla stringa
Il sito in questione è codificato in UTF-8.
Un cliente ha riscontrato problemi nella compilazione di un modulo sul nostro sito Web. Ecco i dati di esempio che hanno inserito.
SPICER-SMITHS PERSO
Sembra una stringa regolare, ma quando si copia che stringa in un app come Notepad ++ vedrete un "?" appare nella parola "SMITHS" ("SMITH? S").
Lo script disinfetta il campo e compie il passaggio extra della rimozione dei seguenti caratteri: "\r\n", "\n", "\r", "\t", "\0", "\x0B"
.
Tuttavia, non sta catturando questo personaggio nascosto.
Qualcuno sa cosa sta succedendo qui?
MODIFICA: sto utilizzando php. Qui è la funzione che uso per disinfettare il campo:
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 mi ha portato alla risposta. La stringa che stavo testando era l'output dal nostro ticket di supporto dopo che il cliente l'aveva copiato e incollato da qualsiasi applicazione lei stesse usando. L'ingresso effettivo è stato
SPICER-SMITH
Che linguaggio di scripting stai usando? Puoi includere il codice utilizzato per rimuovere i caratteri nascosti? – thaJeztah
Grazie, ho modificato il mio post. –
Ho scoperto che era questo personaggio http://www.fileformat.info/info/unicode/char/92/index.htm Non so proprio come spogliarlo. –