Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2009, 03:31
Avatar de AnesGy
AnesGy
 
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años, 9 meses
Puntos: 19
Respuesta: Cambiar acentos

Opción 1
Ir uno por uno:

haz una matriz que contenga los acentos y su representación así:


Código PHP:
$patrón = array("Á", "É"...);
$remplazo = array("Á","&Eacute" ...); 
Luego puedes usar preg_replace (para ello en la matriz $patrón tienes que poner "/Á/", "/É/"...) o str_replace, que no estoy seguro de que funcione con matrices.
Opción 2
Otra opción es cambiar todos los < por algún carácter qeu no uses ([ o algo parecido) y el > por otro, haces el htmlentinties() y luego vuelves a cambiarlo. Cuida si usas caráctres como ± que luego hay que sustituir &plusminus; (su representación)
Opción 3
Vuelve a cambiar los &gt; por > y los &lt; por <.
Opción 4
Quizás te convenga cambiar la codificación de tu página:

Código HTML:
<!DOCTYPE ...>
<html xmlns="..." xml:lang="es" lang="es">
 <head>
   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
  ...
 </head>

...
El content-type usado (ISO-8859-1) es el óptimo para el español y muestra todos los acentos, a parte de unas cuantas letras extrañas.

Si además lo quieres para la base de datos, también puedes cambiar la codificación de la misma, creo que es latin_5_spanish o algo así.

Este sitio usa ISO-8859-1 y el uso de este sistema no te impedirá usar &Aacute; y otras entidades por el estilo.