Locales

Hola,
Una pregunta un poco vieja, pero que valores de locales recomiendan para las bases y clientes?
Actualmente, consultando por sysdbslocale, todas nuestras bases estan creadas en el motor de producción con en_US.819 que creo es el default.

Al exportarlas note que tenemos problemas con acentos y ñ, lo cual es logico para lo cual deberia utilizar iso-8859 no?
Este es un ejemplo de export:

AND v.forma_aprobacion in ('Examen', 'Promoció®§©

		AND v.fecha BETWEEN vcinicio AND vcfin

Cuales serían los pasos a seguir para ordenar esto?

Gracias!

Amplio con un ejemplo
Leyendo un SP cualquiera, viendo el procbody veo esto:

-- Borra la tabla temporal
   BEGIN
      -- Si no existía, continúa
      ON EXCEPTION IN  (-206)
      END EXCEPTION WITH RESUME ;
      -- Borra la tabla temporal
      DROP TABLE tmp_dw;
   END
   
   RAISE EXCEPTION SQLErr, ISAMError, error

Luego, viendo el dbexport tengo:

-- Borra la tabla temporal

   BEGIN

      -- Si no exist contin򡍊
      ON EXCEPTION IN  (-206)

      END EXCEPTION WITH RESUME ;

      -- Borra la tabla temporal

      DROP TABLE tmp_dw;
   END

   RAISE EXCEPTION SQLErr, ISAMError, errorInfo;

Hola Claudio,

Tengo informix en un ubuntu seteado con el mismo locale

dbs_dbsname base_test
dbs_collate en_US.819

Y cuando hago un export, veo bien los caracteres acentuados en los archivos generados. Vos lo tenes en linux ? podes ver bien un caracter acentuado en un archivo de texto ?

saludos
Ignacio

Hola Ignacio,
no, en Linux (CentOS) no estoy visualizando acentos ni ñ, asi que tiene que venir por ahi el tema…

LANG=es_AR.UTF-8
LC_CTYPE=“es_AR.UTF-8”
LC_NUMERIC=“es_AR.UTF-8”
LC_TIME=“es_AR.UTF-8”
LC_COLLATE=“es_AR.UTF-8”
LC_MONETARY=“es_AR.UTF-8”
LC_MESSAGES=“es_AR.UTF-8”
LC_PAPER=“es_AR.UTF-8”
LC_NAME=“es_AR.UTF-8”
LC_ADDRESS=“es_AR.UTF-8”
LC_TELEPHONE=“es_AR.UTF-8”
LC_MEASUREMENT=“es_AR.UTF-8”
LC_IDENTIFICATION=“es_AR.UTF-8”
LC_ALL=

No es por revivir hilos muertos, pero ya que no esta cerrado hago un par de aclaraciones.

  1. Siendo que hablamos y escribimos mayormente en español lo mínimo seria utilizar 8859-1
  2. Según lo que leí del 819, es idéntico al 8859-1 así que los códigos de los acentos no varían (http://ascii-table.com/codepage.php?819)
  3. Ahora con el utf8 también está bien, porque soporta perfectamente español (de hecho unifica todos los códigos de página)

El tema es que cuando hablamos de códigos de páginas hay que ver:
a. El código de página de la base de datos
b. El código de página del SO del cliente
c. El código de página del SO del servidor en que está el SGBD (esto no nos interesa a nosotros pero si al SGBD)

Nota: El código de página del SO de tu PC cuando estás ejecutando una consulta estilo “INSERT INTO tabla(x,y,z) VALUES (‘ñandú’,123,NULL)” desde el sqlEditor entra en el punto “b” anterior.

En cuanto a la última pregunta:
El cliente de conexión informix te deja indicar distintos code pages para los puntos “a” y “b” y se encarga él solito de convertir de uno a otro según sea necesario.
Fijate en el setnet32 que las opciones DB_LOCALE y CLIENT_LOCALE estén correctas.
En db_locale debe ir el code page que tenga tu base de datos y en client_locale debe ir el code page del windows (este último podría variar entre los distintos clientes).

Finalmente comentar que cuando se exportan datos, el texto se exporta en el db_locale de la base de datos… así que ver bien o mal desde un editor a dicho texto dependerá de que tu editor entienda ese code page y/o pueda convertirlo al code page de tu Windows.