Solución:
“Latin 1” es tu problema aquí. Hay aproximadamente 65256 caracteres UTF-8 disponibles para una página web que no puede almacenar en una página de códigos Latin-1.
Para su problema inmediato, debería poder
$clean = str_replace(chr(194)," ",$dirty)
Sin embargo, cambiaría su base de datos para usar utf-8 lo antes posible, ya que es casi seguro que el problema vuelva a ocurrir.
Esto funciona para mi:
$string = "Sentence ‘not-critical’ and n sorting ‘not-critical’ or this r and some ‘not-critical’ more. ' ! -.";
$output = preg_replace('/[^(x20-x7F)x0Ax0D]*/','', $string);
En realidad, no es un carácter y es probable que se deba a una desalineación entre la codificación del contenido y la codificación del navegador. Intente configurar la codificación de su página de salida a lo que está usando.
por ejemplo, en la sección, salida:
echo "<META http-equiv='Content-Type' content="text/html; charset=UTF-8">";
(Ajuste UTF-8 a lo que esté usando)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)