[R] Encodage de la sortie console

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

[R] Encodage de la sortie console

#1

Message par GMH »

Bonjour,

Sauriez-vous où trouver une éventuelle page de code de console. Je souhaiterais choisir l'encodage qui conviendrait pour afficher dans la console des mots en langue étrangère (programme exécuté sans compilation depuis SciTE).

Je vous remercie.
Modifié en dernier par GMH le ven. 14 juin 2019 12:38, modifié 1 fois.
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: [..] Encodage de la sortie console

#2

Message par jchd »

Sans plus de précision, difficile d'apporter une réponse pertinente.
Quel script étanger ?
La console est-elle en UTF8 ou en page de code Windows ?
Appli CUI ou GUI ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#3

Message par GMH »

Bonjour et merci pour votre message,

J'utilise la fonction "Éxécuter" du menu "Outils" de l'éditeur SciTe. Sans GUI.

J'ai essayé toutes les possibilités listées dans le menu "Fichier / Encodage". Aucun des encodages proposés n'affiche les caractères GRECS dans la console. Mais ils s'affichent très bien dans les lignes de programmation et le programme destiné à rechercher/trier/classer des mots grecs dans des fichiers-textes écrits en caractères grecs, fait bien son travail . Par contre les résultats dans la console sont une suite de points d'interrogation ou de signes cabalistiques. Quant aux caractères accentués français, seuls les encodages UTF-16 et UTF-8 avec BOM les affichent. UTF-8 sans BOM ne les affiche pas.

Merci encore si vous pouvez m'aider à résoudre ce problème.
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: [..] Encodage de la sortie console

#4

Message par jchd »

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é.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#5

Message par GMH »

Bonjour et déjà un grand merci pour votre longue réponse et ce code que j'aurais été bien incapable de créer.

- J'ai modifié le fichier SciTEUser.properties en ajoutant les 2 lignes
- J'ai ajouté à mon code la variable $CW et les fonctions Func __ConsoleWrite(ByRef $s) ; Func __ConsoleInit() ; Func _ConsoleWrite($s)

Si les lignes de code sont bien encodées en UTF-8, l'affichage dans la console n'a pas réussi. J'obtiens toujours dans la console :

Code : Tout sélectionner

 caractère  trouvé : ᾣ
au lieu de :

Code : Tout sélectionner

caractère trouvé : ᾣ
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: [..] Encodage de la sortie console

#6

Message par jchd »

Postez un bout de code court qui montre le problème.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Encodage de la sortie console

#7

Message par walkson »

Bonjour,
@jchd
Ce n'est pas dans SciTEGlobal.properties qu'il faut modifier (ligne 308 et 314) ?.....
# Unicode
#~ code.page=65001
code.page=0
#character.set=204
#command.discover.properties=python /home/user/FileDetect.py "$(FilePath)"
# Required for Unicode to work on GTK+:
#LC_CTYPE=en_US.UTF-8
if PLAT_WIN
   output.code.page=0
if PLAT_GTK
   output.code.page=65001
if PLAT_MAC
   output.code.page=65001
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#8

Message par GMH »

Bonjour,

Où se cache-t-il ce fichier SciTEGlobal.properties ?
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Encodage de la sortie console

#9

Message par walkson »

dans C:\Program Files\AutoIt3\SciTE
mais c'était une question, pas une affirmation !
RMQ: dans mon cas SciTEUser.properties est dans le même dossier mais aussi dans C:\Users\PC\AppData\Local\AutoIt v3\SciTE
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#10

Message par GMH »

Voici un petit bout de code pour tester :

Code : Tout sélectionner

Global $texte = "τὴν δ' ὁ Κυλλήνιος ἐν βρυώδει ἄντρῳ ἔτετμε κερκίδι βύσσον ὑφαίνουσαν"
Global $splitTexte = StringSplit($texte," ")
Global $CW = @Compiled ? __ConsoleWrite : _ConsoleWrite

For $i = 1 To UBound($splitTexte) - 1
	$CW($i & "° mot affiché : " & $splitTexte[$i] & @CRLF)
Next

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
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: [..] Encodage de la sortie console

#11

Message par jchd »

Ah oui, peut-être. Depuis un long bail, je ne touche plus que très rarement à cet trucs-là et du coup je patauge pour m'y retrouver.
Je pense que les fichiers SciTEGlobal.properties et SciTEUser.properties qui se trouvent dans C:\Program Files (x86)\AutoIt3\SciTE sont des modèles installés avec SCiTe4AutoIt3 et, si je capte le principe, les réglages de C:\Users\PC\AppData\Local\AutoIt v3\SciTE\SciTEUser.properties ont la priorité.

EDIT : j'ai corrigé les chemins
Modifié en dernier par jchd le ven. 14 juin 2019 00:52, modifié 3 fois.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#12

Message par GMH »

Je n'ai pas le fichier SciTEGlobal.properties.
Je vous ai mis plus haut un bout de code pour tester l'affichage dans la console.
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: [..] Encodage de la sortie console

#13

Message par jchd »

J'ai corrigé les chemins dans mon post du dessus.

Ici, le script donne ça :
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\jc\Documents\AutoMAT\tmp\tstutf.au3" /UserParams
+>00:47:05 Starting AutoIt3Wrapper v.19.102.1901.0 SciTE v.4.1.2.0 Keyboard:0000040C OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:040C) CodePage:65001 utf8.auto.check:4
+> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\jc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jc\AppData\Local\AutoIt v3\SciTE
>Running AU3Check (3.3.14.5) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\jc\Documents\AutoMAT\tmp\tstutf.au3
+>00:47:06 AU3Check ended.rc:0
>Running:(3.3.14.5):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\jc\Documents\AutoMAT\tmp\tstutf.au3"
+>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
1° mot affiché : τὴν

2° mot affiché : δ'

3° mot affiché : ὁ

4° mot affiché : Κυλλήνιος

5° mot affiché : ἐν

6° mot affiché : βρυώδει

7° mot affiché : ἄντρῳ

8° mot affiché : ἔτετμε

9° mot affiché : κερκίδι

10° mot affiché : βύσσον

11° mot affiché : ὑφαίνουσαν

+>00:47:06 AutoIt3.exe ended.rc:0
+>00:47:06 AutoIt3Wrapper Finished.
>Exit code: 0 Time: 1.873
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
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: [..] Encodage de la sortie console

#14

Message par jchd »

Voici mon SciTeGlobal et mon SciTe User.
tmp.zip
(7.83 Kio) Téléchargé 352 fois
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#15

Message par GMH »

Bonjour,

Malgré votre aide, et après comparaison de vos fichier properties et les miens, je ne suis pas parvenu à obtenir un affichage correct dans la console. J'obtiens ceci :

Code : Tout sélectionner

>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\grec\test_utf-8.au3" /UserParams    
+>10:20:36 Starting AutoIt3Wrapper v.19.102.1901.0 SciTE v.4.1.2.0   Keyboard:0000040C  OS:WIN_10/  CPU:X64 OS:X64  Environment(Language:040C)  CodePage:0  utf8.auto.check:4
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\EGO\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\EGO\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.14.5)  from:C:\Program Files (x86)\AutoIt3  input:C:\grec\test_utf-8.au3
+>10:20:37 AU3Check ended.rc:0
>Running:(3.3.14.5):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\grec\test_utf-8.au3"    
+>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
1° mot affiché : τὴν

2° mot affiché : δ'

3° mot affiché : ὁ

4° mot affiché : Κυλλήνιος

5° mot affiché : ἐν

6° mot affiché : βρυώδει

7° mot affiché : ἄντρῳ

8° mot affiché : ἔτετμε

9° mot affiché : κερκίδι

10° mot affiché : βύσσον

11° mot affiché : ὑφαίνουσαν

+>10:20:37 AutoIt3.exe ended.rc:0
+>10:20:37 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 1.26
J'ai donc pris les grands moyens : désinstallation d'AutoIt et réinstallation à partir de l'adresse viewtopic.php?t=246

Mais pas mieux !

J'ai téléchargé le fichier devant traduire les menus de SciTE en français. Mais je n'ai sans doute pas su faire car l'éditeur reste en langue anglaise.
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: [..] Encodage de la sortie console

#16

Message par jchd »

Il y a quand même une différence de poids !
Dans ma sortie console, AutoIt3Wrapper indique clairement CodePage:65001
Dans la vôtre, on trouve CodePage:0
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [..] Encodage de la sortie console

#17

Message par GMH »

Ευρεκα ! Vous avez trouvé !

Vous travaillez sans doute sous Linux ou Mac, car dans votre fichier SciTEglobal , à la ligne 329, on trouve :

if PLAT_WIN
output.code.page=0

... et moi sous Windows. Votre fichier et le mien étaient bien identiques. Ça ne m'a pas fait tilt !



Sauriez-vous me guider pour franciser l'éditeur SciTE ? L'installation du fichier de Tlem n'a pas réussi. Je n'ai sans doute pas fait ce que j'aurais dû faire.

Déjà grand merci à vous.
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: [..] Encodage de la sortie console

#18

Message par jchd »

Je tourne sous W7 x64.
Ce qui compte ici, c'est ce qu'il y a dans SCiTeUser car tout réglage de ce fichier prend le pas sur les valeurs par défaut listées dans SCiTeGlobal.

Par cntre je n'ai aucune idée sur ce que contient la distribution traduite ni comment s'en servir. Je préfère l'original à la copie, je dois avoir un ancêtre british ou alors j'ai trop nagé dans les docs US et EN.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
GMH
Niveau 6
Niveau 6
Messages : 227
Enregistré le : dim. 24 juin 2012 14:56
Status : Hors ligne

Re: [R] Encodage de la sortie console

#19

Message par GMH »

C'est bizarre car mon SciTEUser.properties était identique au vôtre.
Aux lignes 35 et 36 , j'avais bien :

code.page=65001
output.code.page=65001

Peu importe. Maintenant ça marche. Je ne vous embête plus.

Je vous remercie encore et vous souhaite un bon week-end.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Encodage de la sortie console

#20

Message par Tlem »

Dans le Pack FR, ce sont bien les fichiers originaux qui sont utilisés. Le seul petit ajout consiste en la traduction d'UDF dans lesquels il resterait encore les termes Anglais concernant les jours de la semaine et les mois, sinon point de modifications sauvages ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre