El eterno problema de no ver los caracteres de nuestra aplicación web de la manera correcta (tildes, acentos, eñes) desde diferentes plataformas es algo que suele irritar a más de uno cuando se inicia en este desgraciado medio. Sin embargo, no os preocupéis, que desde hace un tiempo elaboramos una lista (salu2 charly!) explicando qué hacer y en dónde para que tanto en la aplicación como en la base de datos se usara UTF-8 para los juegos de caracteres.
He aquí los pasos a tener en cuenta:
1. Cabeceras
En la sección HEAD de la página se especificará el juego de caracteres a usar, lo que se logra escribiendo algo como
Código :
<HEAD> <meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8"> </HEAD>
2. Formularios
Los formularios de la aplicación deberán estar configurados para que los datos que procesen obedezcan a UTF-8, lo cual se hace agregando el parámetro accept-charset con el valor UTF-8:
Código :
<form name="formulario_usuario" method="post" accept-charset="UTF-8">
3. La base de datos
Los datos que se quieran convertir a UTF-8 desde una sentencia deberán obedecer a la siguiente sintaxis en una sentencia SQL (el ejemplo va con un INSERT):
Código :
INSERT INTO tabla VALUES (CONVERT(_latin1'Pepito Pérez' USING utf8), '1', md5("12345"));
Cabe aclarar que estas sentencias no funcionan al momento de hacer un dump desde consola ni por medio de una conexión al server. Usar entonces phpMyAdmin.
4. En el HTML
Para que nuestros textos estáticos muestren caracteres especiales sin problemas, es necesario que dichos caracteres sean escritos con su nombre HTML. Por ejemplo, las vocales minúsculas se escribirían de la sgte manera:
Código :
á => á é => é í => í ó => ó ú => ú
Para ver un listado completo pueden visitar este sitio, y una vez allí usen la columna HTML name.
5. JavaScript
Bueno, acá se sigue algo parecido al paso anterior (o al menos hasta que encontremos algo más decente). Se usa directamente el carácter en su formato UTF-8, de esta manera las vocales acentuadas y la ñ se ven así:
Código :
á => á é => é í => à ó => ó ú => ú ñ => ñ
Espero que el FeedBack por parte de los clabers esté lleno de mejoras, en especial para el 5 punto.
Y en fin, como siempre, igualmente espero que le sea de utilidad a más de uno por ahí.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por adgranados el 16 de Julio de 2007
Por Erick Huezo el 16 de Julio de 2007
Por deniz el 16 de Julio de 2007
Por tom el 16 de Julio de 2007
Por charly el 17 de Julio de 2007
En fin, una solución utilizando el editor Notepad seria la siguiente: simplemente antes de iniciar a escribir un .js lo que se hace es cambiar el formato o codificar el archivo con UTF-8 y así podrás escribir común y corriente los acentos, ñ´s y demás caracteres si ningún problema. Bueno creo, que puede servir… además es un buen editor, chau.
Por Victor-Nael el 17 de Julio de 2007
Por phpleo el 17 de Julio de 2007
Otra forma es poner esto en tu archivo htaccess:
Código :
Además el maestro Dano en su momento me ayudó con utf-8 para mysql aquí.
Salu2.
Por Lunatic el 17 de Julio de 2007
Por Lunatic el 17 de Julio de 2007
El programa se llama Notepad , o, por si acaso, NotepadPlusPlus, o NotepadMásMás
Por C el 19 de Julio de 2007
si se fijan en http://www.minid.net/2005/05/24/utf-8-vale-la-pena/ el código fuente usa todos los caracteres como corresponde
En todo caso buen aporte el articulo. Saludos
Por Mundix el 20 de Julio de 2007
<meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8">
y cuando hago echo en php lo pongo asi
echo utf8_encode($rs_info['nombre']);
y me sale asi :
Proyect mund�n en Acci�n Navide�a.
Que es lo que esta pasando
Por Verstop3 el 22 de Julio de 2007
Por Chaval el 30 de Julio de 2007
Por aldo damianovich el 07 de Septiembre de 2007
mysql_query("SET NAMES utf8");
//o sea que quedaria de esta forma
mysql_query("SET NAMES utf8");
$sql = "select * FROM menu";
$res = mysql_query($sql);
saludos y espero les sirva
Por Fernando Salinas el 31 de Octubre de 2007
Por yo el 16 de Noviembre de 2007
Por willloo el 09 de Enero de 2008
o alguna solucion a este problema.
gracia por su ayuda.
Por Tengo problemas con el 04 de Febrero de 2008
Por Dario el 05 de Febrero de 2008
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
y en los campos escoger la codificacion utf8_bin
Por Hely el 03 de Abril de 2008
á =>
Por Argento el 23 de Abril de 2008
Por celeste siles el 08 de Junio de 2008
Por celeste el 08 de Junio de 2008
Por Muerte al utf8 el 01 de Julio de 2008
Por Chaval el 07 de Septiembre de 2008
Por gabynufe el 10 de Septiembre de 2008
JavaScript
Código :
Por luis el 12 de Septiembre de 2008
Por Gabriel el 27 de Septiembre de 2008
Por Rudolf el 28 de Septiembre de 2008
Por rdcklinux el 17 de Noviembre de 2008
el único problema de esto es que los POST no se codifican correctamente y los envía como latin1 (ISO-8859-1) aunque uno configure el browser a UTF-8 y apache a UTF-8 y la base de datos a UTF-8
la única solución aparente es haciendo la codificación antes de pasarlo a SQL o mediante SQL
a mi parecer es mejor hacerlo antes de SQL en codigo PHP u otro scripting ya que asi no limitamos nuestro software a ocupar una base de datos UTF-8, sino que será multicodificación, solo basta definir una variable de entorno que especifique la codificación a usar por el sistema de base de datos y una función que permita esta conversión previa antes de enviar la consulta SQL.
Por shiizpa el 02 de Diciembre de 2008
{
$texto = htmlentities($texto , ENT_QUOTES); //No permite codigo HTML
$texto = str_replace("\r","<br />",$texto); //Asignar codigo espacios
$texto = utf8_encode($texto); //ENCODE A UTF-8
$texto = iconv("ISO-8859-1" , "UTF-8", $texto); // Convierte ISO-8859-1 UTF-8
return $texto;
}
trabajando con utf-8 me cree mi propia funcion para reparar los textos
hasta el momento me esta funcuionando re bien para imprimir texto en php
saludo!!!!
Por Laren el 11 de Enero de 2009
Para mi es lo más agraciado que he podido conocer.
Por viewer el 16 de Enero de 2009
<meta http-equiv="content-type" content="text/html; charset=utf-8">
colocarlo como el anterior en el head y listo espero les sirva
saludos...
Por shiizpa el 17 de Marzo de 2009
no asi
<meta http-equiv="content-type" content="text/html; charset=utf-8">
asi
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
xhtml
Por Carlos Molina (yoliv el 30 de Marzo de 2009
Por jacr1102 el 01 de Mayo de 2009
Por Paco el 19 de Junio de 2009
á => á
é => é
í => Ã
ó => ó
ú => ú
ñ => ñ
Por papanitas el 04 de Diciembre de 2009
Por porq sale -blog en m el 04 de Diciembre de 2009
Por furia el 22 de Diciembre de 2009
Por alexi el 30 de Diciembre de 2009
Por metalviejo el 04 de Febrero de 2011
// -------------------------------------------------------------------
function modalStart() {
// apply font replacement
Cufon.replace('#fancybox-title-main', { fontFamily: 'Vegur' });
}
// Apply font replacement (cufon)
// -------------------------------------------------------------------
Cufon.replace('h1, h2, h3, h4, h5, h6, #fancybox-title-main', { fontFamily: 'arial' });
Cufon.replace('.pageTitle, #Showcase h1, #Showcase h2, #Showcase h3, #Showcase h4, #Showcase h5, #Showcase h6', { fontFamily: 'arial Light' });
y lo que hice fue reemplazar la font que tenia por arial y listo ahora mi web se ve con todos los caracteres especiales
Por Carlos-bcn el 17 de Marzo de 2011
http://jeppesn.dk/utf-8.html
Por tutuca el 28 de Junio de 2011
Si usás html5 la forma correcta es:
[code]
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
</head>
<body>
<h1> ?_? </h1>
</body>
</html>
[code]
Por dejo un aporte el 29 de Junio de 2011
if(is_array($texto)){ foreach($texto as $cl => $vl){$texto[$cl]=labelHtml($vl);}}else{
$texto = htmlentities($texto, ENT_NOQUOTES, 'UTF-8');
$texto = htmlspecialchars_decode($texto, ENT_NOQUOTES);
}
return $texto;
}
Por Omar el 21 de Julio de 2011
no me funciona el index.php me presenta signo extraños, alguna solucion ?...
Por acme el 09 de Septiembre de 2011
Por xacux el 12 de Noviembre de 2011
Por Nicolás el 14 de Noviembre de 2011
Por carlos el 13 de Noviembre de 2012
Por baqpilsen el 21 de Enero de 2013
Por luis el 08 de Febrero de 2013
Un saludo
http://www.visitaspirata.com
Por gamikun el 08 de Marzo de 2013
Por eduardo el 25 de Marzo de 2013
Por el 08 de Diciembre de 2013
Por javier el 04 de Enero de 2014
Por andres el 23 de Febrero de 2014
Por francisco el 19 de Abril de 2014
Por Hankook el 27 de Abril de 2014
Con este:
<HEAD>
<meta name="tipo_contenido" content="text/html;" http-equiv="content-type" charset="utf-8">
</HEAD>
Sirve para cambiar TODO el contenido del sitio HTML
Por Javier el 15 de Septiembre de 2014
Por Jose 81 el 19 de Septiembre de 2014
Por almu el 04 de Noviembre de 2014
Por BM_Leunam_MF el 29 de Octubre de 2015
Por ESTEBAN el 09 de Marzo de 2016
muchas gracias