Probablemente muchos de ustedes hayan oído hablar de los sistemas de codificación, los que hablamos español estamos muy acostumbrado al famoso ASCII si, ese que nos ayuda a sacar las tildes.
Pues así como el ASCII hay muchísimos sistemas de codificación que lo usan en otros idiomas e incluso un mismo idioma puede tener varios sistemas de codificación que varía por la plataforma en la que se ejecuta. ¿Y cómo hacemos para arreglar todo este enredo? como hago para poder ver páginas de anime japonés con sus caracteres reales y no solamente unos cuadrados? como hacen los hebreos para poder leer correctamente algo en francés o ruso? La respuesta a todo es Unicode!
Unicode proporciona un número único para cada carácter, sin importar la plataforma, sin importar el programa, sin importar el idioma.
Dicho todo esto, volvamos con UTF-8 !
UTF-8 se lo debemos al maestro Ken_Thompson, si uno de los genios detrás de Unix y el creador de Plan 9
UTF-8 usa grupos de bytes para representar el estándar de Unicode para los alfabetos de muchos de los lenguajes del mundo. Es especialmente útil para la transmisión sobre sistemas de correo de 8 bits.
Usa de 1 a 4 bytes por carácter, dependiendo del símbolo de Unicode. Por ejemplo, se necesita un solo byte en UTF-8 para codificar los 128 caracteres US-ASCII en el rango U+0000 a U+007F de Unicode.
Para todos aquellos que tenemos necesidad de programar usar UTF-8 nos ha servido para aliviar muchísimos dolores de cabeza, especialmente para los que hablamos español y tenemos necesidad de colocar tildes y algunos caracteres especiales, y muchas veces teníamos que hacerlo con software que no contemplaban esas posibilidades. Ahora casi todo el software que usamos y que tiene que ver con manipulación de documentos soportan este formato.
Para los que son webmasters UTF-8 es especialmente importante porque les ahorrará muchos problemas con los navegadores, webservers y las aplicaciones que escriban.
Pues bien, configure el DEFAULT CHARACTER SET de mi base de datos Firebird a UTF-8 y por supuesto algo muy importante: Al momento de crear la cadena de conexión para conectarnos a Firebird no debemos olvidar especificar el character set = UTF8, de esta manera la aplicación ahora si mostrará de forma correcta los tildes, acentos y eñes.
La cadena de conexión quedaría más o menos así:
delphi
var cnn : FbConnection := new FbConnection('character set=UTF8;data source=laptop;initial catalog="C:\GESTIONCOMERCIAL.FDB";user id=SYSDBA;password=masterkey');
Después de un buen rato de invetigar al final quedo.