[R] Encodage de la sortie console
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Encodage de la sortie console
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.
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.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
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 ?
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é.
Re: [..] Encodage de la sortie console
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.
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.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
Dans SciTeUser.properties pour passer la console intégrée en UTF8, mettre :
Pour afficher de l'UTF8 depuis du code AutoIt lancé via Scite, utiliser ceci :
et utiliser cette fonction au lieu de ConsoleWrite :
L'intérêt de la redirection via une variable est que ça fonctionne en CUI ou GUI, depuis Scite ou compilé.
Code : Tout sélectionner
code.page=65001
output.code.page=65001
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
Code : Tout sélectionner
$CW("Καλησπέρα στο σπίτι!")
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Encodage de la sortie console
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 :
au lieu de :
- 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é : ᾣ
Code : Tout sélectionner
caractère trouvé : ᾣ
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
Postez un bout de code court qui montre le problème.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..] Encodage de la sortie console
Bonjour,
@jchd
Ce n'est pas dans SciTEGlobal.properties qu'il faut modifier (ligne 308 et 314) ?.....
@jchd
Ce n'est pas dans SciTEGlobal.properties qu'il faut modifier (ligne 308 et 314) ?.....
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [..] Encodage de la sortie console
Bonjour,
Où se cache-t-il ce fichier SciTEGlobal.properties ?
Où se cache-t-il ce fichier SciTEGlobal.properties ?
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..] Encodage de la sortie console
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
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)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Re: [..] Encodage de la sortie console
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
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
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
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é.
Re: [..] Encodage de la sortie console
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.
Je vous ai mis plus haut un bout de code pour tester l'affichage dans la console.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
J'ai corrigé les chemins dans mon post du dessus.
Ici, le script donne ça :
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é.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
Voici mon SciTeGlobal et mon SciTe User.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Encodage de la sortie console
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 :
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.
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
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.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
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
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é.
Re: [..] Encodage de la sortie console
Ευρεκα ! 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.
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.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- 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
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.
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é.
Re: [R] Encodage de la sortie console
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.
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.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Encodage de la sortie console
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é".
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é".