Page 1 sur 1

Conversion ASCII UNICODE UTF8

Publié : mar. 14/nov./2017 14:21
par PAPIPP
Bonjour à tous

Voici une méthode simple qui à partir d’un environnement ASCII ou UNICODE convertit :

UNICODE vers => ASCII
UNICODE vers => UTF8
ASCII vers => UNICODE
ASCII VERS =>UTF8

Ainsi que la création d'un fichier sans conversion.
UNICODE => UNICODE
ASCII => ASCII

Les fichiers *.TXT créés ont pour nom :
ALPHA environnement(ASCII ou UNICODE) Conversion(ASCII_ou UNICODE ou UTF8).TXT

Ils sont sur la racine de c:\

Ont peut les visualiser avec un éditeur HEXA de type HxD gratuit sur le web

Code : Tout sélectionner

for ii=32 to 255
  alpha$+chr(ii)
Next
length=len(alpha$)
CompilerIf #PB_Compiler_Unicode
  ;;*** L'environnement est en UNICODE *****
    ;;;   Ecriture  directe du fichier en UNICODE 
  createfile(11,"C:\ALPHA_UNICODE_UNICODE.txt")
  WriteData(11,@alpha$,length*2) ;;; Longueur en octets 1 car UNICODE = 2 octets
  closefile(11)
  
  ;; **** Conversion Unicode vers ASCII *********
  ASCII$=space(length)
  pokes(@ASCII$,ALPHA$,length,#PB_Ascii  )
  ;;;   Ecriture du fichier en ASCII
  ;   LASCII=len(ASCII$)
  createfile(11,"C:\ALPHA_UNICODE_ASCII.txt")
  WriteData(11,@ASCII$,length) ;;; Le nombre d'octets = le nombre de caractère en ASCII
  closefile(11)
  
  ;; **** Conversion Unicode vers UTF8 *********
  UTF8$=space(length*2)
  pokes(@UTF8$,ALPHA$,length,#PB_UTF8  )
  ;;;   Ecriture du fichier EN UTF8
  createfile(11,"C:\ALPHA_UNICODE_UTF8.txt")
  LUTF8=len(UTF8$)*2 ;;; en univers UNICODE UTF8 est considéré comme UNICODE doc 1 car = 2 octets
  WriteData(11,@UTF8$,LUTF8) ;;; 
  closefile(11)
  
    ;;; conversion de UTF8 en  univers UNICODE
  UNICODE$=SPACE(512)
  UNICODE$=peeks(@UTF8$,512,#PB_UTF8);;; Conversion de la chaine UTF8 en Unicode dans l'univers Unicode
  createfile(11,"C:\ALPHA_UTF8_UNICODE.txt")
  WriteData(11,@UNICODE$,len(UNICODE$)*2) ;;; Longueur en octets 1 car UNICODE = 2 octets
  closefile(11)

    ;;; conversion de ASCII en  univers UNICODE
  UNICODE$=SPACE(512)
  UNICODE$=peeks(@ASCII$,512,#PB_Ascii)  ;;; Conversion de la chaine ASCII en Unicode dans l'univers Unicode
  createfile(11,"C:\ALPHA_UNICODE_ASCII_UNICODE.txt")
  WriteData(11,@UNICODE$,len(UNICODE$)*2) ;;; Longueur en octets 1 car UNICODE = 2 octets
  closefile(11)
CompilerElse 
    ;;*** L'environnement est en ASCII *****
    ;;;   Ecriture  directe du fichier en ASCII
  createfile(11,"C:\ALPHA_ASCII_ASCII.txt")
  WriteData(11,@alpha$,length) ;;; Longueur en octets 1 car ASCII  = 1 octet
  closefile(11)

    ;; **** Conversion ASCII vers UNICODE  *********reatefile
  UNICODE$=space(length*2)
  pokes(@UNICODE$,ALPHA$,length*2,#PB_Unicode )
  ;;;   Ecriture du fichier en UNICODE
  createfile(11,"C:\ALPHA_ASCII_UNICODE.txt")
  WriteData(11,@UNICODE$,length*2) ;;; 
  closefile(11)

  ;; **** Conversion ASCII vers UTF8 *********
  UTF8$=space(length*2)
  pokes(@UTF8$,ALPHA$,length*2,#PB_UTF8  )
  ;;;   Ecriture du fichier EN UTF8
  createfile(11,"C:\ALPHA_ASCII_UTF8.txt")
  LUTF8=len(UTF8$)
  WriteData(11,@UTF8$,LUTF8) ;;; 
  closefile(11)
  
      ;;; conversion de UTF8 en  univers ASCII 
  ASCII$=space(256)
  ASCII$=peeks(@UTF8$,256,#PB_UTF8);;; Conversion d'une chaine UTF8 en ASCII dans l'univers ASCII
  createfile(11,"C:\ALPHA_UTF8_ASCII.txt")
  WriteData(11,@ASCII$,len(ASCII$)) ;;; Longueur en octets 1 car UNICODE = 2 octets
  closefile(11)

       ;;; conversion de UNICODE en  univers ASCII 
  ASCII$=space(256)
  ASCII$=peeks(@UNICODE$,256,#PB_Unicode);;; Conversion d'une chaine Unicode en ASCII dans l'univers ASCII
  createfile(11,"C:\ALPHA_ASCII_UNICODE_ASCII.txt")
  WriteData(11,@ASCII$,len(ASCII$)) ;;; Longueur en octets 1 car UNICODE = 2 octets
  closefile(11)
   
CompilerEndIf 
A+

Re: Conversion ASCII UNICODE UTF8

Publié : mar. 14/nov./2017 16:19
par PAPIPP
Suite

J'ai ajouté les conversions
UTF8 vers => UNICODE
et UTF8 vers => ASCII suivant l'environnement dans lequel on se situe.

dans l'univers UNICODE (Compilateur en UNICODE) ont peut convertir UTF8 en UNICODE
et si l'on veut dans cet univers une conversion en ASCII on reprend la conversion UNICODE vers => ASCII

Dans l'univers ASCII (Compilateur en Non UNICODE) ont peut convertir UTF8 en ASCII
et si l'on veut dans cet univers une conversion en UNICODE on reprend la conversion ASCII vers => UNICODE

(Voir message précédent.

A+

Re: Conversion ASCII UNICODE UTF8

Publié : ven. 24/nov./2017 10:38
par PAPIPP
Bonjour à tous

Dans le premier message j’ai ajouté 2 nouvelles conversions que j’avais oublié.

Ce sont la
1) Conversion d’une chaine ASCII en Unicode dans l'univers Unicode
2) Conversion d'une chaine Unicode en ASCII dans l'univers ASCII

A+

Re: Conversion ASCII UNICODE UTF8

Publié : lun. 27/nov./2017 14:43
par Kwai chang caine
Waouh ! je crois que tu as pensé à tout 8O
Pour l'instant je n'en ai pas besoin, mais mon petit doigt me dit que "malheureusement" ton code pourra m'être d'une grande utilité dans les mois qui suivent :|
Merci du partage 8)