Etiqueta

12 febrero 2014

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

La normalización de caracteres

Originalmente, Unicode se componía un conjunto de caracteres de 16 bits, y fue ampliado posteriormente hasta incluir el U+10FFFF y probablemente no será la última vez que se produzca una extensión.

Windows y Mac OS X aún representan cadenas de caracteres Unicode utilizando matrices de números enteros abreviados (16-bit), lo cual no representa un problema ya que el estándar UTF-16 permite que los códigos U+10000 y mayores puedan ser representados mediante pares de valores de 16 bits, lo cual puede dejar un par libre (sin uso), conocido como par suplente.

Internamente Omnis usa UTF-32 para representar los códigos, es decir, cada código ocupa 32 bits, por lo que el valor de cada uno de ellos puede estar entre 0 y U+10FFFF inclusive. Esto permite un procesamiento sencillo de las cadenas de caracteres, ya que cada código ocupa el mismo espacio de memoria.

Unicode permite un alto número de variantes entre los caracteres a representar. Por ejemplo, considere las posibles variantes de la letra E, con acento circunflejo, con un punto por debajo o su representación en vietnamita, este carácter de hecho consta de cinco posibles representaciones en formato Unicode:

U+0045          corresponde a la letra mayúscula latina E
U+0302          con acento circunflejo
U+0323          con un punto debajo
U+00CA         mayúscula con acento circunflejo
U+1EB8         mayúscula con punto debajo
U+1EC6         mayúscula con acento circunflejo y el punto por debajo

Un carácter representado por más de un código es conocido como carácter compuesto (composite), mientras que uno representado por un único código, es conocido como carácter pre-compuesto (pre-composed).

En lo que respecta a su "forma final", a cada una de éstas representaciones generalmente le corresponde una única grafía, lo cual conlleva algunas consecuencias interesantes en lo que respecta a su uso con Omnis y que iremos exponiendo en las sucesivas entregas de éste tutorial. Con el término "forma final" hacemos referencia al carácter que finalmente se desea obtener, en el ejemplo anterior, el carácter "forma final" sería: .

Con el término normalización hacemos referencia a la conversión de una cadena de caracteres a un formato estándar Unicode. Una vez normalizada, una cadena de caracteres Unicode tiene una única representación posible, permitiendo de ese modo su comparación con otras cadenas de caracteres. El estándar Unicode recomienda el uso de uno de los dos siguiente métodos de normalización:
  • Descomposición regulada, denominada NFD: Los caracteres pre-composed son sustituidos por caracteres composite equivalentes.
  • Descomposición regulada (NFD), seguida de pre-composed, denominada NFC: Después de llevarse a cabo el NFD, todos los caracteres composite resultantes son sustituidos por sus equivalentes pre-composed, si los hubiere.
Para realizar la normalización de cadenas de caracteres Omnis proporciona las siguientes dos funciones:
  • nfd(cadena): Ejecuta un NFD y devuelve la cadena normalizada. 
  • nfc(cadena): Ejecuta un NFC y devuelve la cadena normalizada.
Estas funciones no están disponibles para su uso en métodos del cliente web, es decir ejecutándose del lado del cliente.

05 febrero 2014

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

De No-Unicode a Unicode


Con la publicación de Omnis Studio 4.3.x se anunciaron las modalidades Unicode y No-Unicode, de ese modo se dejaba a decisión del desarrollador cual de ellas usar.

La razón era muy clara, es necesario que Omnis de soporte a las diferentes grafías y tipologías de caracteres que encontramos en los diferentes idiomas y no solamente en el inglés, además se hacía necesario ampliar la gama soportada existente, una vez que Omnis se decantaba por un mayor apoyo al desarrollo de aplicaciones móviles e Internet.

En ésta serie de 15 partes, trataremos todos los detalles implicados en el salto de un desarrollador de aplicaciones Omnis de No-Unicode a Unicode. No hay porqué abordar éste tema con recelo, pues los cambios necesarios son pocos y las ventajas muchas, de hecho lo necesitamos si queremos abrir nuestras aplicaciones a nuevos mercados.

¿Qué es Unicode?


Según el Consorcio Unicode (www.unicode.org), que mantiene el estándar Unicode:

“Unicode proporciona un número identificador único para cada carácter, con independencia de la plataforma, la aplicación, o el idioma".

Puede obtener más información en: http://www.unicode.org/standard/WhatIsUnicode.html

Por lo tanto, podemos afirmar que es de obligado cumplimiento que sus aplicaciones, proporcionen soporte para el formato de datos Unicode, de lo contrario perderá terreno frente a sus competidores, mientras que de otro modo podrá conseguir nuevos clientes de entre los nuevos mercados emergentes.

El Consorcio Unicode proporciona información y recursos en relación con Unicode, tales como su definición estandarizada, mantenimiento de sus tablas de códigos y un extenso repositorio de productos Unicode.

De hecho las versiones actuales de Omnis Studio se suministran sólo en versión Unicode, conservando (eso si) todas las funciones de conversión necesarias para el paso de No-Unicode a Unicode, además de la visualización de cadenas de texto y datos de caracteres con soporte para varios idiomas y entornos de ejecución.

El uso de la codificación Unicode afecta principalmente al tratamiento de datos dinámicos, como (por ejemplo) en listas, o en la consulta y recuperación de datos desde un servidor de base de datos.

Signa atentos a las diferentes entregas de está serie de tutoriales, les recomiendo que se suscriban al canal del blog para no perderse ninguna de ellas.

Reciban un cordial saludo.

12 diciembre 2013

Curso On-Line Omnis-SQLite

Objetivos

  • Formación en SQLite y Omnis SQL
  • Construcción de una utilidad para la conversión automática de un DF1 (Base de datos nativa Omnis) a SQLite

Características

  • No presencial
  • 20 horas de formación
  • Sábados de 10 a 12, hora de España, del 11 de Enero al 15 de Marzo

Requisitos

  • Ordenador con conexión a Internet
  • Omnis Studio Developer
  • SQLite
  • Abono de la matrícula

Inscripción

  • Abono íntegro de la matrícula desde el siguiente enlace: