Hola amigos estoy teniendo unos problemas para la codificacion de la pagina
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:
if(!preg_match('/^[a-zA-ZñÑáÁéÉíÍóÓúÚ]+$/', $algun_campo_enviado)) //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.