Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Vocales acentuadas

Estas en el tema de Vocales acentuadas en el foro de Mysql en Foros del Web. Tengo una base de datos en la que hay una tabla que tiene un campo alfabético (entre otros). En este campo almaceno nombre de aves. ...
  #1 (permalink)  
Antiguo 02/06/2009, 05:33
 
Fecha de Ingreso: diciembre-2007
Mensajes: 17
Antigüedad: 16 años, 4 meses
Puntos: 0
Vocales acentuadas

Tengo una base de datos en la que hay una tabla que tiene un campo alfabético (entre otros). En este campo almaceno nombre de aves. Como este nombre tiene que aparecer desplegado en una web, si hay alguna vocal con acento, lo que guardo es el código correspondiente a esa vocal con acento. P.Ej.: si el nombre es Águila yo guardo Águila.
El problema viene cuando tengo que mostrar una lista de los nombres ordenados alfabéticamente. Para obtener los datos utilizo un Select * From xxxx order by nombre asc.
La gracia es que todos los nombres que empiezan con vocal acentuada salen primero que los que empiezan con vocal sin acento.
Agradecería alguna sugerencia para solucionar el problema.
  #2 (permalink)  
Antiguo 02/06/2009, 08:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Vocales acentuadas

Yo lo haría al revés.

Guardaría las tíldes bien en la base de datos (así no tendrás problemas al ordenar) y en la pagina aplicaría el penultimo post de este tema
http://www.forosdelweb.com/f18/conve...s-html-193393/

Sin embargo, mira si puedes configurar desde tu pagina para que te acepte acentos sin hacer uso de reemplazos.
pon en el <head> esto:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 02/06/2009, 08:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Vocales acentuadas

Yo estoy de acuerdo con huesos52 totalmente. Empiezo por aquí, y te recomendaría escribir en un formato al que afecte algunas de los cotejamientos de MySQL. Piensa que no sólo tendrás problemas, como dices, para ordenar, sino también para comparar. Es decir, cuando quieras buscar Águila, tendrás que buscar A&acute;guila, y tendrás que utilizar alguna función de programación para convertir, como el html_entity_decode() de PHP. Es mejor la otra solución, una codificación como la que te propone huesos52 que tiene varios cotejamientos, lo que le permite ordenar y hacer comparaciones. Y además, será fácil convertir de esa codificación a html usando funciones como htm_entities() de PHP, si es que quisieras recurrir a ello.
No obstante eso, si te empeñas en seguir por esa vía, podremos solucionarlo haciendo un ORDER BY con reemplazos anidados de &acute, etc. por nada, y n&tilde por 'ñ', etc. Ordenará bien, pero será una chapuza. Además no sé cuántos signos estás utilizando, si escribes diéresis, acentos graves, circunflejos, o sólo son acentos agudos del español, la eñe y poco más.
  #4 (permalink)  
Antiguo 02/06/2009, 08:38
 
Fecha de Ingreso: diciembre-2007
Mensajes: 17
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Vocales acentuadas

Lo más probable es que haga caso a la sugerencia de guardar las vocales con los tildes. Es que el contenido está en catalán y si se usan varios tipos de acento.

Me gustaría saber si el meta que menciona huesos52 (<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">) sirve también para los acentos graves, circunflejos, Ç, Ñ, etc.
  #5 (permalink)  
Antiguo 02/06/2009, 08:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Vocales acentuadas

Yo prefiero utf8, pero claro que latin1, europeo occidental, es decir, ISO-8859-1 cubre el catalán. Compruébalo en wikipedia:
http://en.wikipedia.org/wiki/ISO_8859-1
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




La zona horaria es GMT -6. Ahora son las 20:24.