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