Foros del Web » Creando para Internet » HTML »

¿Á o Á en UTF-8?

Estas en el tema de ¿Á o Á en UTF-8? en el foro de HTML en Foros del Web. Hola a todos. Estoy centrándome en comprender todo el tema de la codificación de archivos ya que me interesa que mis sitios utilicen UTF-8, tanto ...
  #1 (permalink)  
Antiguo 29/08/2010, 01:29
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
¿Á o Á en UTF-8?

Hola a todos.
Estoy centrándome en comprender todo el tema de la codificación de archivos ya que me interesa que mis sitios utilicen UTF-8, tanto en el HTML como la base de datos MySQL, etc.
Hasta hoy tuve la costumbre de colocar cualquiera de los "caracteres especiales" (no incluidos en el ASCII original) de la forma á - é - í - ó - ú - ñ - & - > - etcétera.
Colocando la codificación UTF-8 en los meta, en el .htaccess del servidor, en el cotejamiento de la BD y demás, puedo visualizar bien las letras con tilde, la ñ y demás sin el típico problema de los caracteres raros aún cuando no uso, por ejemplo, "á", y coloco directamente "á" y así mismo se ve en el código fuente del XHTML.
Mi pregunta es: ¿recomiendan que siga utilizando, por si acaso, la forma de "&aacute" o que coloque directamente "á" aprovechando que UTF-8 lo permite, que facilita bastante la lectura cuando se trabaja con el código?
Creo que alguna vez tratando de validar mi sitio en la W3C obtenía un error con los caracteres especiales, pero no recuerdo si utilizaba UTF-8 o no. ¿Podré validar las páginas si comienzo a escribir las letras directamente con tilde?
Finalmente, si bien esto debería ir en otro subforo pero para aprovechar que es sobre el mismo tema... Tengo un formulario que guarda datos en una BD MySQL, es mejor que los textos se guarden con tildes y luego haga cualquier modificación al llamarlos, antes que guardarlos modificados?
Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 29/08/2010, 02:14
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ¿Á o Á en UTF-8?

parece que el tema de la codificacion seguira dando de que hablar, creo que por falta de entendimiento de los detalles tecnicos de los charset. la respuesta resumida a tu duda es que no es necesario utilizar las entidades. y sobre la base de datos -aunque no tengo idea en esa area- me parece que lo adecuado seria no tratarlos ni antes ni despues, con la salvedad de algunos casos. especificamente me refiero a que no tienes que cambiar los caracteres especiales por otros. obviamente si tienes que satinizar el contenido antes de ingresarlo a la base de datos para evitar injeccion de codigo dañino. lo importante es que en todo los aspecto el contenido se trate bajo el mismo juego de caracteres. mas tarde intentare explicar algunos de los detalles tecnicos de los charsets y el por que de las entidades. ahora mismo no puedo porque tras de que es tarde tambien hay que redactar bastante.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 29/08/2010, 12:39
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: ¿Á o Á en UTF-8?

Gracias por tu respuesta zerokilled esa es la idea que ya tenía pero quería escucharlo de alguien que tenga más conocimiento que yo, que recién empiezo a entenderlo (el texto "ASCII, Unicode, UTF-8 y la Iñtërnâçiônàlizæçiøn" me ayudó bastante).
Un saludo y estaré al tanto por si agregas el texto que mencionaste.
  #4 (permalink)  
Antiguo 29/08/2010, 20:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: ¿Á o Á en UTF-8?

RabidFish:
La que sigue es una especie de guía practica sobre la codoficación, quizás loes ejemplos te ayuden a entender un poco el tema.
http://foros.emprear.com/codificar/guia.php

Como dice ZeroKilled este tema esta siempre vigente

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 30/08/2010, 13:08
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: ¿Á o Á en UTF-8?

Gracias emprear, cualquier artículo sobre UTF-8 y codificación me viene bien.
  #6 (permalink)  
Antiguo 30/08/2010, 14:27
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 46
Antigüedad: 15 años, 5 meses
Puntos: 7
Respuesta: ¿Á o Á en UTF-8?

Este tutorial sobre el tema es muy bueno:

http://www.joelonsoftware.com/articles/Unicode.html
  #7 (permalink)  
Antiguo 30/08/2010, 14:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: ¿Á o Á en UTF-8?

Estaba verificando ahora mismo un tema que habla sobre encoding y me encontré este, lo dejo porque tiene mucho material que ayudará a muchos http://www.phpwact.org/php/i18n/charsets
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 30/08/2010, 21:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ¿Á o Á en UTF-8?

en vista de las ultimas respuestas considero que no es necesario redactar las lineas que iba a exponer, lo que si considero es que todos deberian leer ambos articulos. el articulo de joelonsoftware se basa mas en la teoria el cual aplica a todas las areas de desarrollo, y el articulo de phpwatch.org en algo de teoria pero con enfoque hacias las aplicaciones. gracias pablo y abimael por tan buenos articulos. sin embargo, me es necesario mencionar algun detalle importante en torno al tema de inicio y como complemento de ambos articulos.
  • todos sabemos el proposito de las entidades, representar caracteres "especiales". sin embargo, podemos pasar de alto su uso cuando el conjunto de caracteres (charset) a utilizar puede representar dicho caracter, con la unica excepcion de ciertos caracteres que tienen un significado especial en HTML.
    justamente es aqui donde tengo mis desacuerdo cuando se cita que utf-8 es mejor que ISO-8859-1 (Latin-1) porque utf-8 puede representar caracteres como la eñe y vocales acentuadas. lo cierto es que ese no es el factor por el cual utf-8 sea mejor, porque si miramos la tabla ISO-8859-1 veremos que los caracteres antes mencionados estan presentes, lo cual es perfectamente valido utilizar Latin-1 sin tener que recurrir a las entidades. lo que hace utf-8 tener mayor ventaja frente Latin-1 es que el contenido puede contener varios idiomas bajo un solo conjunto de caracteres.
  • tecnicamente UTF no es un conjunto de caracteres sino un algoritmo para codificar la tabla Unicode usando como base una cierta longitud de bytes para los caracteres. no obstante, con cualquiera de las variantes de UTF es posible representar cualquier caracter de la tabla Unicode. cuando el caracter no se puede representar en esa base de bytes se utilizan mas bytes. por ejemplo, utf-8 utiliza 8-bits, equivalente a un byte, para representar los caracteres por debajo del code-point 0x7F.
  • exactamente, ¿por qué en ocaciones tenemos la representacion incorrecta de los caracteres? en resumen se debe a la mezcla de codificaciones o la identificacion incorrecta de ésta. lo que sucede en el trasfondo es lo siguiente. cada codificacion utiliza un valor unico para cada caracter dentro de su conjunto. en algunos casos, un caracter puede representar el mismo valor en diferentes codifaciones. por ejemplo, la letra A tiene valor 0x41 (65 decimal) en Unicode, Latin-1, Windows-1252, y en otras series de ISO-8859. en su momento, se hicieron asi como proposito de compatibilidad con otras codificaciones como ASCII. al mismo tiempo, cada codificacion se basa en una serie de normas. por ejemplo, el antes mencionado, utf-8 utiliza los primeros 128 valores para los caracteres ASCII y estos se representan en un solo byte. a partir de las pociones 0x80 hasta 0x7ff utiliza dos bytes. dentro de este rango es donde se encuentra los caracteres como eñe y vocales acentuadas -por mencionar algunos-. comparado con Latin-1, estos mismos caracteres representan un solo byte. a continuacion una presentacion de sus valores.
    Código:
    caracter   Latin-1   utf-8       utf-16LE
    Á          0xC1      0xC3 0x81   0xC1 0x00
    É          0xC9      0xC3 0x89   0xC9 0x00
    Í          0xCD      0xC3 0x8D   0xCD 0x00
    Ó          0xD3      0xC3 0x93   0xD3 0x00
    Ú          0xDA      0xC3 0x9A   0xDA 0x00
    Ñ          0xD1      0xC3 0x91   0xD1 0x00
    á          0xE1      0xC3 0xA1   0xE1 0x00
    é          0xE9      0xC3 0xA9   0xE9 0x00
    í          0xED      0xC3 0xAD   0xED 0x00
    ó          0xF3      0xC3 0xB3   0xF3 0x00
    ú          0xFA      0xC3 0xBA   0xFA 0x00
    ñ          0xF1      0xC3 0xB1   0xF1 0x00
    
    ¿que sucede si indicamos la codificacion incorrecta? la aplicacion utilizara la codificacion indicada (incorrectamente) y de acuerdo sus normas o algoritmo lee una serie de bytes y lo parea con un caracter de acuerdo a su valor. por ejemplo, si codificamos el contenido en utf-8 pero le indicamos a la aplicacion que utilice Latin-1 para decodificarlo, este ultimo tomara byte por byte y devuelve un caracter de acuerdo a su valor. de ahi es que vemos una secuencia como ÃÉÃÓÚÑáéÃ*óúñ. de forma similar sucede si codificamos el contenido en Latin-1 pero indicamos decodificar con utf-8. en este caso vemos simples cuadros u otros simbolos porque utf-8 utiliza un algoritmo para determinar cuando un caracter se representa en dos o mas bytes. en ese caso los valores de Latin-1 no figuran correctamente el algoritmo de utf-8.

conclusiones: es importante siempre mantenerse en el uso de un solo conjunto de caracter, y en el caso de la programacion utilizar las funciones adecuadas para manipular el contenido segun su codificacion. en mi opinion, el concepto de un charset mejor que el otro no existe. mas bien cada uno cumple con sus propositos con sus ventajas y desventajas, por tanto el mejor charset es el que mejor le funcione a cada autor segun sea la necesidad del proyecto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 03/09/2010 a las 23:29 Razón: agregar utf16LE a la tabla
  #9 (permalink)  
Antiguo 30/08/2010, 22:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: ¿Á o Á en UTF-8?

Estoy de acuerdo (hace unos minutos estaba leyendo sobre el tema en el artículo que indiqué, para repasar el concepto), lo único (me corrigen si me equivoco), es que en ciertos lenguajes es más cómodo trabajar con UTF-8 que con latin-1, por ejemplo XML (también para la versión 6 de PHP por defecto la salida será en UTF-8).

Lo que sí es, como tú dices, lo que hace especial a UTF-8 es, y cito:
Cita:
Iniciado por http://www.phpwact.org/php/i18n/charsets#why_utf-8
...en primer lugar, que es una codificación de Unicode y, en segundo lugar, que es compatible con ASCII.
Habría que verificar hacia qué codificación estarán usando por defecto los lenguajes y empezar a adaptarse a esa codificación.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 30/08/2010, 22:26
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: ¿Á o Á en UTF-8?

Hola,

Excelente explicación !

Cita:
Iniciado por zerokilled Ver Mensaje
... en mi opinion, el concepto de un charset mejor que el otro no existe. mas bien cada uno cumple con sus propositos con sus ventajas y desventajas, por tanto el mejor charset es el que mejor le funcione a cada autor.
La principal ventaja de usar UTF es que si todos usaran UTF este problema no existiría; puesto que las bases de datos, navegadores, sistemas operativos, etc., todos usarían la misma representación de tabla de caracteres universal; ya que esta contiene completamente a las otras, ese es el objetivo de Unicode.

Y nadie se tendría que preocupar por este problema.

Saludos,

ps:
Personalmente prefiero UCS a UTF.
  #11 (permalink)  
Antiguo 30/08/2010, 22:54
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ¿Á o Á en UTF-8?

@hackmanc,
respecto a tu post-script, parece que no entendistes la diferencia entre utf e unicode. una vez estes usando utf (unicode transformation format) automaticamente estas usando Unicode (aka UCS = universal character set). o bien para utilizar Unicode por obligacion necesitas alguna variante de utf. utf es simplemente el algoritmo para transformar la tabla UCS. la razon que se creo utf es para corregir el problema de ocupar mucho espacio de memoria o disco por cada caracter. por ejemplo, utf-16 utiliza dos bytes para cada caracter. por un momento supongamos un contenido donde la mayoria de los caracteres corresponden a la tabla ASCII pero este contenido esta codificado en utf-16. en este caso es un desperdicio porque estas ocupando un byte de mas por cada caracter.

@abimael,
nunca habia escuchado que la codificacion predeterminada de xml es utf-8. en html no creo que aplique el caso porque es el navegador quien escoge la decodificacion o el mismo usuario la indica en las opciones. el de php6 me acabo de enterar en el articulo que compartistes. y por agregar, javascript internamente opera en unicode con utf-16.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 30/08/2010 a las 23:01
  #12 (permalink)  
Antiguo 31/08/2010, 02:16
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: ¿Á o Á en UTF-8?

Hola,

Cita:
Iniciado por zerokilled Ver Mensaje
... la razon que se creo utf es para corregir el problema de ocupar mucho espacio de memoria o disco por cada caracter. por ejemplo, utf-16 utiliza dos bytes para cada caracter. ...
A eso me refería exactamente, es decir, trabajo en Java desde hace mucho tiempo y recibo información que viene de muchos lugares en todas las variaciones de tablas de caracteres. Pero prefiero usar UCS-2 en lugar de UTF-16 en mis aplicaciones por varios motivos, principalmente porque no es longitud variable (16 bit), también UCS-2 no es exactamente igual a UTF-16 y muchas veces se confunde este hecho.

Saludos,

ps:
Java originalmente usaba UCS-2.
  #13 (permalink)  
Antiguo 31/08/2010, 04:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: ¿Á o Á en UTF-8?

Bueno, más bien indiqué que es más cómodo trabajar, no que por defecto su codificación es UTF-8. Porque la codificación, si no se especifica en los encabezados ni en la etiqueta, va a tomar el que hayas declarado en el documento dependiendo del "Byte-Order-Mark (BOM)".
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 31/08/2010, 08:42
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: ¿Á o Á en UTF-8?

En cuanto al tema de codificación, como bien indica zerokiller, dependerá de la comodidad que a cada autor le ofrezca una u otra.

Bajo mi punto de vista, desde que utilizo UTF-8, tanto para la codificación de html como para las base de datos que en mi caso son mysql, no he vuelto a tener problemas con la caracterización especial de letras. He probado con proyectos en ruso, chino, griego, y no me ha vuelto a dar problemas.

La cuestión es el Byte Order que también se nombra, aunque algunos editores ya permiten codificar las páginas sin ese Bit. Desde que puedo codificar sin ese byte se quitan bastantes complicaciones de utilizar un editor WYSIWYG con proyectos multiidiomas.
  #15 (permalink)  
Antiguo 31/08/2010, 12:04
Avatar de seudoCodigo  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Rico
Mensajes: 163
Antigüedad: 21 años
Puntos: 1
Respuesta: ¿Á o Á en UTF-8?

Recomiedo siempre asegurarse de que el navaegador del usuario esté UTF. Eso lo podemos hacer con l aetiqueta:

Código:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  #16 (permalink)  
Antiguo 31/08/2010, 14:27
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: ¿&Aacute; o Á en UTF-8?

Hola,

Cita:
Iniciado por seudoCodigo Ver Mensaje
Recomiedo siempre asegurarse de que el navaegador del usuario esté UTF. Eso lo podemos hacer con l aetiqueta:

Código:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
¿Que sucedería si el documento realmente está guardado en la codificación ISO-8859-1 ó Latin 1, usa caracteres extendidos como las letras á y ñ; y le pones esa etiqueta en el encabezado al documento HTML?

Creo que la sugerencia debería ser:

Recomiendo siempre asegurarse que el documento está guardado con la codificación que indicas en el charset del documento. No importa cual sea esta debe coincidir exactamente con la codificación de la tabla de caracteres del contenido del documento HTML.

Saludos,
  #17 (permalink)  
Antiguo 31/08/2010, 15:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ¿&Aacute; o Á en UTF-8?

@seudoCodigo,
creo que te saltastes uno de los puntos que mencione en uno de mis mensajes anteriores, especificamente el tercer punto. los problemas no se van con tan solo siempre escribir META charset utf-8.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: utf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:39.