versions Delphi avant Delphi 2009 faire ont le support Unicode intégré. Le type WideString
est disponible depuis Delphi 4, je pense, peut-être plus tôt. WideString
n'est pas aussi joli que le nouveau type UnicodeString
, mais il contient toujours des caractères Unicode 16 bits, et vous pouvez le dactylographier en PWideChar
pour envoyer des chaînes aux fonctions de l'API Unicode. L'unité Windows
déclare la plupart des versions "larges" des fonctions de l'API, et rien ne vous empêche de déclarer d'autres fonctions si vous en trouvez certaines manquantes.
Ce que les versions antérieures n'ont pas, c'est le support Unicode dans la VCL. Pour cela, vous pouvez utiliser les contrôles Tnt Unicode. Ils étaient libres. On dirait qu'il existe quelques endroits où la dernière version gratuite est encore disponible: (1), (2). Le JCL a quelques unités pour travailler avec Unicode. L'unité JclWideStrings
a principalement des fonctions utilitaires légères. L'unité JclUnicode
est plus complète, mais elle inclut également une ressource importante pour déterminer les propriétés de caractères de tous les caractères Unicode.
Avec le langage JCL, vous avez plusieurs choix pour que les classes contiennent des valeurs de WideString
. Je pense que Delphi 7 vient même avec un cours pour ça.
Ne pensez pas que vous ne pouvez pas écrire un programme Unicode simplement parce que vous n'avez pas Delphi 2009.
Si vous avez une valeur WideString
, et que vous souhaitez encoder en UTF-8, puis appeler la fonction Utf8Encode
. Il renverra une valeur AnsiString
, ou éventuellement Utf8String
, si votre version Delphi déclare ce type. Ce n'est pas la même chose que le type Utf8String
de Delphi 2009, cependant.Delphi 2009 sera automatiquement convertir en UnicodeString
ou AnsiString(x)
et vice versa dans les instructions d'affectation. Les versions antérieures ne disposent que d'un seul type AnsiString
, vous devez donc suivre vous-même les variables qui contiennent des données UTF-8 et qui contiennent des données Ansi. (La notation hongroise sur vos noms de variable et de paramètre peut vous aider à garder la trace.) Et bien sûr, il y a aussi une fonction Utf8Decode
pour convertir les données UTF-8 en WideString
.
Pour gérer d'autres codages de caractères, vous souhaitez consulter Open XML, une bibliothèque XML gratuite pour Delphi. Dans le cadre de sa gestion XML, il prend en charge la conversion de 70 encodages différents.
Qu'en est-il de Utf8ToAnsi et AnsiToUtf8 situés dans system.pas? –