[R] Encodage de la sortie console

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
toto1515
Niveau 3
Niveau 3
Messages : 35
Enregistré le : mer. 08 déc. 2010 17:18
Localisation : Corse
Status : Hors ligne

Re: [..] Encodage de la sortie console

#21

Message par toto1515 »

jchd a écrit : mer. 12 juin 2019 22:33 Dans SciTeUser.properties pour passer la console intégrée en UTF8, mettre :

Code : Tout sélectionner

code.page=65001
output.code.page=65001
Pour afficher de l'UTF8 depuis du code AutoIt lancé via Scite, utiliser ceci :

Code : Tout sélectionner

Global $CW = @Compiled ? __ConsoleWrite : _ConsoleWrite

Func __ConsoleWrite(ByRef $s)
	Local Static $hCon = __ConsoleInit()
	DllCall("kernel32.dll", "bool", "WriteConsoleW", "handle", $hCon, "wstr", $s & @LF, "dword", StringLen($s) + 1, "dword*", 0, "ptr", 0)
	Return
EndFunc

Func __ConsoleInit()
	DllCall("kernel32.dll", "bool", "AllocConsole")
	Return DllCall("kernel32.dll", "handle", "GetStdHandle", "int", -11)[0]
EndFunc

; Unicode-aware ConsoleWrite
Func _ConsoleWrite($s)
	ConsoleWrite(BinaryToString(StringToBinary($s & @LF, 4), 1))
EndFunc   ;==>_ConsoleWrite
et utiliser cette fonction au lieu de ConsoleWrite :

Code : Tout sélectionner

$CW("Καλησπέρα στο σπίτι!")
L'intérêt de la redirection via une variable est que ça fonctionne en CUI ou GUI, depuis Scite ou compilé.

Bonjour,
j'ai bien modifié les lignes de SciTeUser.properties et j'ai lancé le code. ça marche pas mal, sauf s'il y a une erreur dans le code :
Scite codepage 2021-02-16_161520.jpg
Alors, l'affichage des caractères spéciaux n'est pas bon.

Une solution ?
Merci
Autoit 3.3.14.5 - Scite 4.2.0 - Windows 8
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Encodage de la sortie console

#22

Message par jchd »

Au3Check n'est pas écrit avec AutoIt et il doit afficher de la page de code par défaut, typiquement Windows Occidental.
Donc mon code de CW() ne peut rien contre ça.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre