forse molto semplicemente perche' utf8_encode agisce anche sullo spazio e quindi non sara' piu' uno "spazio fisico" riconosciuto da trim() ma una valore codificato.