Etiqueta

19 febrero 2014

De No-Unicode a Unicode (Parte 3 de 10)

Comparando textos

Omnis utiliza dos tipos de comparación entre cadenas de caracteres:
  • Comparación entre cadenas con valores UTF-8, conocida como: comparación de caracteres.
  • Comparación de acuerdo a las reglas de entorno locales, indicadas en el fichero de datos de localización (localisation data file), en éste caso y antes de llevarse a cabo la comparación, los datos entrantes son normalizados. Esto se denomina como comparación nacional (National). El uso de “National” por parte del usuario, permitirá garantizar el correcto uso de los caracteres correspondientes a su localidad. Tenga en cuenta que el uso de “National” podrá hacer caso omiso de otras reglas de codificación superiores.
Deberá usarse la función natcmp() para realizar comparaciones de tipo “National”. Tenga en cuenta que dicha función no está disponible del lado del cliente Web.

Omnis también realiza comparación de textos por muchas motivos diferentes y en ocasiones muy diversas, pero a continuación mencionaremos las más importantes.
  • Al ordenar listas
  • Al realizar búsquedas en listas
  • Al manejar índices de archivos de datos (df1)
  • En expresiones, como por ejemplo en una sentencia “if”
En todos los casos Omnis soporta el uso de variables de carácter (UTF-8) y nacional (National).

Al ordenar listas

Cuando se usa el tipo carácter, Omnis utiliza la comparación de caracteres (UTF-8) y cuando se usa el tipo nacional, Omnis utiliza la comparación nacional (National).

Al realizar búsquedas en listas

Cuando se usa el tipo de carácter, Omnis utiliza la comparación de caracteres. En el caso de listas que contienen una columna de caracteres de tipo nacional se usará “National”. Tipos especiales de búsqueda, como por ejemplo, búsquedas mediante un cálculo, se trataran como de tipo carácter, sin embargo, podrá hacer uso de la función natcmp() como parte del cálculo, con el fin de forzar el uso de la comparación “National”.

Al manejar índices de archivos de datos (df1)

Si son declarados como de tipo “National”, se usara éste.

En expresiones

Para garantizar el correcto comportamiento de las expresiones donde se evalúen caracteres, debe previamente normalizar su valor mediante el uso de la función nfc(), nfd() (vistas en la parte II) o bien la función natcmp(), según le interese.

No hay comentarios: