Orden erróneo en utf-8

Orden erróneo en utf-8

Hola, el problema es el siguiente, en una bbdd con utf-8 al usar la cláusula order by en vez de ordenar: a, á, b ordena a, b, á es decir que entiende que las letras con tilde van después de la z. ¿ Conocen la forma de solucionar esto ? Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rafaelma

Re: Orden erróneo en utf-8

El orden en que se ordenan las cosas no tiene nada que ver con que utilizas utf8. ¿Qué valor LOCALE utilizas? ¿qué tienes en LC_COLLATE y LC_CTYPE?

Puedes usar "SHOW lc_collate;" y "SHOW lc_ctype;" en tu cliente psql para obtener estos valores.

Estos dos valores hay que definirlos cuando se inicializa PostgreSQL la primera vez. Hay que tener en cuenta que el uso de un locale diferente a C ó POSIX puede influenciar notablemente al rendimiento de tu sistema.

Más información aquí:
http://www.postgresql.org/docs/current/interactive/locale.html

--
Rafael Martinez
Webmaster

Muchas gracias por haber

Muchas gracias por haber contestado tan rápido y con tan buena información, sin embargo el problema parece que residía en mi SO (OS X) que tiene enlazado por defecto el archivo LC_COLLATE hacia la_LN.US-ASCII. La solución es sencilla pero descubrirla puede hacerte perder mucho tiempo.

Por si alguien se encuentra con el mismo problema:

borrar archivo LC_COLLATE
sudo rm /usr/share/locale/es_ES/LC_COLLATE

crear enlace nuevo hacia la_LN.ISO8859-15
sudo ln -s /usr/share/locale/la_LN.ISO8859-15 /usr/share/locale/es_ES/LC_COLLATE

Y enhorabuena por la página que está muy muy bien.

Enviar nuevo comentario

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><h2><pre>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

Image CAPTCHA
Enter the characters shown in the image.