Si pongo el charset de la pagina en iso-8859-1 no se guardan los acentos y ñ en la base de datos.
ARCHIVO 1
Código PHP:
Ver original
<?php //recibo los campos enviados y los guardo a la base de datos // los datos con ñ y acentos no se guardan y truncan el contenido // los datos los escape con mysql_real_escape_string ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Titulo</title> </head> <body> <?php // si envio campos los saco de la base de datos // los pongo en la pagina y los escapo con [B]htmlentities[/B] // los acentos y ñ no se recuperan por que no se guardaron en la base de datos ?> <form action="a la misma pagina" <campos de input.... /> </body> </html>
------------------------------------------------------------------------------------------
La otra si pongo el charset utf8 si los guarda pero me los dezplega mal en la pagina usando htmlentities
ARCHIVO 2
Código PHP:
Ver original
<?php //recibo los campos enviados y los guardo a la base de datos // los datos con ñ y acentos SI se guardan correctamente // los datos los escape con mysql_real_escape_string // EN este caso con utf8 de la pagina si hago un preg_match por ejemplo para verificar ciertos datos: //incorrecto //siempre me da error si en el campo envio algun caracter acentuado o ñ como si en la expresion //regular no existiera ese permiso de introducir ese campo. ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <title>Titulo</title> </head> <body> <?php // si envio campos los saco de la base de datos // los pongo en la pagina y los escapo con [B]htmlentities[/B] // los acentos y ñ el htmlentities los dezpliega como caracteres extraños // sin no uso htmlentities los acentos y ñ si se ponen correctamente pero // pero si pongo un tag no terminado por ejemplo en el campo enviado y guardado en la BD // pasa lo obvio se corta el html lo que podria producir errores o bueno ya saben. ?> <form action="a la misma pagina" <campos de input.... /> </body> </html>
Por ultimo el COTEJAMIENTo que estoy usando en la base de datos y las tablas es utf8_unicode_ci
Me podrian ayudar a resolver esas dudas, como por que la ñ no me la acepta la expresion regular
o no me guarda correctamente las ñ, o al dezplegarlas usando htmlentities.
GRacias a todos por sus respuestas.