una vez me paso algo similar con un XML que venia con un texto sacado de WORD y era imposible mostrarlo por pantala.
Intente CDATA y todo tipo de trucos (ISO, CHAR SETS, etc) y no pude sacarmelo de encima.
En definitiva termine por hartarme y en vez de sacar el caracter que me molestaba, me hize una funcion que solo me dejaba los caracteres que yo deseaba y asi workarrondie el problema.
La solucion a este problema quizas tenga una version mas digna, pero lo que hize fue lo siguiente:
Funcion que soluciona el problema
Código PHP:
function deja_solo_caracteres_permitidos(manga_caracteres_permitidos,cadena_a_limpiar)
on error resume next
dim x,str,salida,letra,manga,cantidad
deja_solo_caracteres_permitidos = false
if cadena_a_limpiar = false then exit function
if manga_caracteres_permitidos = false then
manga = UCASE("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_")
else
manga = manga_caracteres_permitidos
end if
str = cadena_a_limpiar
salida = str
cantidad = len(cadena_a_limpiar)
for x = 1 to cantidad
letra = Mid(str,x,1)
if checa_existencia(manga,letra) = false then
salida = replace(salida,letra,"")
end if
next
if err.number = 0 then
deja_solo_caracteres_permitidos = salida
end if
err.Clear
exit function
end function
Funciones requeridas para la anterior
Código PHP:
function checa_existencia(cadena,patron)
dim regex, match, matches ,x
set regex = new regexp
regex.pattern = fixER(patron)
regex.ignorecase = false
regex.global = true
set matches = regex.execute(cadena)
for each match in matches
x = 1
next
if x = 1 then
checa_existencia = true
else
checa_existencia = false
end if
end function
function fixER(x)
SELECT CASE x
CASE "?" fixER = "\?"
CASE "." fixER = "\."
CASE "\" fixER = ""
CASE "*" fixER = "*"
CASE ELSE
fixER = x
END SELECT
end function
y se usa asi
dim cadena,manga,x
rem donde manga es un STR que contiene todos los caracteres que quieres permitir y cadena es el texto que deseas limpiar.
cadena = "hola como estan todos"
manda = "aeiou "
x = deja_solo_caracteres_permitidos(manga,cadena)
rem el resultado en X seria
"oa oo ea oo"
Espero te sirva