Ho bisogno di pulire una stringa che viene (copia/incollata) da varie applicazioni della suite di Microsoft Office (Excel, Access e Word), ognuno con il proprio set di codifica.Ho una stringa con " u00a0" e devo sostituirla con "" str_replace fallisce
Sto utilizzando json_encode per scopi di debug per poter vedere ogni singolo carattere codificato.
Sono in grado di pulire tutto ciò che ho trovato finora (\ r \ n) con str_replace, ma con \ u00a0 non ho fortuna.
$string = '[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]'; //this is the output from json_encode
$clean = str_replace("\u00a0", "",$string);
rendimenti:
[email protected]\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;[email protected]
che è esattamente lo stesso; ignora completamente \ u00a0.
C'è un modo per aggirare questo? Inoltre, sento che sto reinventando la ruota, c'è una funzione/classe che toglie completamente OGNI possibile carattere di OGNI possibile codifica?
____EDIT____
Dopo le prime due risposte ho bisogno di chiarire che il mio esempio funziona, perché è l'uscita dal json_encode, non la stringa effettiva!
Nel tuo esempio funziona perché stai utilizzando l'output di js on_encode non la stringa vera e propria! Se copio incolla il mio codice funziona perfettamente anche per me. – 0plus1
Cosa succede se si sostituisce '\ xa0' piuttosto che' \ u00a0'? –
Questo succede. Elimina le istanze di \ u00a0 e quando viene stampato da json_encode sembra ok, tuttavia se echo la stringa senza codifica json ottengo un dove prima c'era il \ u00a0. A questo punto non riesco a capire cosa sta succedendo .. per favore dammi una spiegazione! :-) – 0plus1