While I was working, I found the following regular expression:
$returnValue = preg_replace('/(^|[^a-z0-9-])()($|[^a-z0-9-])/mi', '$1x$2$3', 'anulación', -1, $count);
And the result is:
'anulaci�x�n'
I have no clue why is happening, the caracter is uncodified.
Thanks in advance!!