Samedi 20 mars 2004 ; unicode, translittération, encodage, string.
Bonsoir !

Face à un besoin de conversion de chaînes de caractères, entre différents encodages (translittération), je me suis retrouvé face à une difficulté de transcodage en UTF-32 (Unicode "Wide", avec 4 octets par caractères).

Après quelques recherches, j'ai abouti sur "iconv". Cette "chose logicielle" est une émanation du libre (en GNU, ça va faire plaisir à Côme), et se présente sous plusieurs forme : logiciel autonome, utilisable en ligne de commande, librairie C, DLL, etc. il existe de nombreux wrappers, notamment pour PHP (re-coucou, Côme) et Python. Du coup, j'ai remplacé, dans PONX, mon convertisseur "standard" par un autre, utilisant iconv. Certes, il y a une installation à faire (en gros une DLL et un module de 3,8 ko), mais l'étendue des possibilités de conversion est énorme.

Donc, cela est maintenant accessible depuis Paradox. Petit problème, la technologie COM (Ole, active-X, ocx) de windows effectue ses propres conversions. Pour ne pas avoir un résultat "déformé", il peut être nécessaire de passer par un fichier.
Néanmoins, vous pouvez envisager avec sérénité, sous Paradox, les projets nécessitant de travailler avec des (fichiers ou des) chaînes encodés selon de nombreux types (même du russe, s'pas, Alain ?).

A noter que java, supposé travailler nativement en unicode, utilise un UTF-8 particulier (non-standard), et nécessite des outils externes pour réaliser les conversions complexes.

Chez Microsoft, on a encore choisi des termes particuliers : on parle de "surrogates", par accolage de deux caractères unicode UTF-16, appelée "pair of 16-bit-code-values"  ou "surrogate-pair" ; mais cela n'est pas vraiment géré, et il manque de nombreuses choses dans .NET

Bref l'informatique est un paysage tellement vaste, qu'il existe toujours des collines, oubliées par les grands colonisateurs, et sur lesquelles prolifèrent les tribus du libre.

@-salutations
--
Michel Claveau