Support de Unicode

De Wiki1000
(Différences entre les versions)
(Unicode dans Delphi)
(Unicode dans Delphi)
Ligne 4 : Ligne 4 :
 
A partir de la version 2009, Delphi supporte l'unicode.
 
A partir de la version 2009, Delphi supporte l'unicode.
 
La représentation interne des chaines change.
 
La représentation interne des chaines change.
 +
 +
{| class="wikitable" width="80%" align="center"
 +
|-
 +
! scope=col |
 +
! scope=col | < 2009
 +
! scope=col | >= 2009
 +
|-
 +
| width="33%" |
 +
'''String'''
 +
| width="34%" |
 +
AnsiString
 +
| width="33%" |
 +
UnicodeString
 +
|-
 +
| width="33%" |
 +
Char
 +
| width="34%" |
 +
AnsiChar
 +
| width="33%" |
 +
WideChar
 +
|-
 +
|}
  
 
Avant 2009 : string=AnsiString ; char=ansichar.
 
Avant 2009 : string=AnsiString ; char=ansichar.
Ligne 13 : Ligne 35 :
 
Une unité a été ajoutée pour la lecture et écriture de flux contenant des chaînes: ustrhlp.
 
Une unité a été ajoutée pour la lecture et écriture de flux contenant des chaînes: ustrhlp.
  
Dans cette unité, la lecture et l'écriture chaine dans un flux s'effectue par défaut en ansi. Il faut préciser si on souhaite un autre encodage.
+
Dans cette unité, la lecture et l'écriture chaine dans un flux s'effectue par défaut en '''ansi''' (comme avant donc). Il faut préciser si on souhaite un autre encodage.
  
 
{{tip|Le type UnicodeString n'est pas équivalent au type WideString. UnicodeString est géré par compteur de référence et utilise le gestionnaire de mémoire delphi, pas le type wideString qui est moins efficace}}
 
{{tip|Le type UnicodeString n'est pas équivalent au type WideString. UnicodeString est géré par compteur de référence et utilise le gestionnaire de mémoire delphi, pas le type wideString qui est moins efficace}}

Version du 10 août 2010 à 15:55

versiontahoe-48x48.png

Sommaire

Unicode dans Delphi

A partir de la version 2009, Delphi supporte l'unicode. La représentation interne des chaines change.

< 2009 >= 2009

String

AnsiString

UnicodeString

Char

AnsiChar

WideChar

Avant 2009 : string=AnsiString ; char=ansichar.

Après 2009 : string=UnicodeString ; char=widechar.

Tout code qui présume qu'une variable de type char est stockée sur un byte est donc à revoir.

Une unité a été ajoutée pour la lecture et écriture de flux contenant des chaînes: ustrhlp.

Dans cette unité, la lecture et l'écriture chaine dans un flux s'effectue par défaut en ansi (comme avant donc). Il faut préciser si on souhaite un autre encodage.

Tip-20px.png Tip : Le type UnicodeString n'est pas équivalent au type WideString. UnicodeString est géré par compteur de référence et utilise le gestionnaire de mémoire delphi, pas le type wideString qui est moins efficace

Migration vers Delphi 2010

Versions du compilateur

{$IFDEF VER180} - Delphi 2006

{$IFDEF VER180} - Delphi 2007

{$IFDEF VER185} - Delphi 2007

{$IFDEF VER200} - Delphi 2009

{$IFDEF VER210} - Delphi 2010

La configuration du projet

  • Indy (tiburon)
  • Zlib
  • libGraph/png*
  • Apache


Reste à faire

  • CharInSet + Warning en général
Outils personnels