[R] Accents mal encodés

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

[R] Accents mal encodés

#1

Message par jeanmimigab »

Bonsoir à tous(tes)
Cela fait 3 mois que je suis en phase de développement sur un programme et d'un seul coup (sans avoir rien changé) les accents partent en sucette :?
J'ai tenter de réinstaller le pack autoit-fr mais cela n'a rien changé...idem pour les essais d'aller dans FILE>encoding et remettre sur UTF8.
rien n'y fait, j'ai galéré tout le Weekend :cry:
si quelqu'un a une idée, merci d'avance et bonne soirée :wink:

pour exemple: voir la capture en pièce jointe
Fichiers joints
capture
capture
Capture.JPG (14.15 Kio) Vu 5173 fois
Modifié en dernier par jeanmimigab le mer. 20 juil. 2016 19:24, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [...] Accents mal encodés

#2

Message par TommyDDR »

Avez vous essayé UTF8 with BOM ?
Ça me l'a aussi fait avec une mise à jour SciTE il me semble, là je suis en v3.6.0 et je n'ai plus le problème.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Accents mal encodés

#3

Message par orax »

Si j'ai bien compris, c'est dans le code source que les accents partent en sucette.
Sur l'image, l'é est représenté sur 4 octets. En UTF-8 il devrait l'être sur 2 seulement. Je pense donc que le fichier a été "converti" deux fois. À part un rechercher-remplacer, je ne vois, pour l'instant, par d'autres solutions.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Accents mal encodés

#4

Message par orax »

J'ai une autre solution, un peu plus pratique. Pour faire la manipulation j'utilise Notepad++.
Prenons l'exemple du é qui est écrit é dans le code.
Supposons que j'ai un fichier dans lequel il y a é.
  • J'ouvre ce fichier avec Notepad++.
    Menu Encodage > Convertir en ANSI.
    Menu Encodage > Encoder en UTF-8.
    Menu Encodage > Convertir en ANSI.
    Menu Encodage > Encoder en UTF-8.
Dans SciTE ça correspond à UTF-8 with BOM.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [...] Accents mal encodés

#5

Message par jeanmimigab »

Bonsoir à tous(tes)

Voici le résultat des tests.

Problème persiste en encodage "UTF8 with BOM"
J'ai bien la version de scite v3.6.0
La manipulation avec notepad++ ne change rien... :cry:

Je précise que dans la fenêtre de scite, le texte apparait sans erreurs, mais c'est l'exécution du script qui donne un résultat avec erreurs.

Si cela peut vous aider, j'ai remarqué que seule certaines lignes posent des problèmes...
bizarrement l'erreur est présente quand je génère des fichiers .vbs par exemple avec ça...

Code : Tout sélectionner

FileWrite(@scriptdir & "/TECHNICIENS/GANTS/" & $ecri2 & "/" & $ecri10 & ".vbs", 'MsgBox ' &'"' &' L''agent ' & $ecri2 & ' doit vérifier ses gants avant 10 jours' & '"'& @CRLF)
par contre dans un msgbox comme celle-ci, les accents sont bien représentés lors de l'exécution...

Code : Tout sélectionner

MsgBox(0, "Modification réalisée", " Dossier de suivi de l'agent " & $ecri2 & " modifié avec succès ! ", 3)
EDIT: si je test en générant un fichier TXT au lieu de VBS, le fichier.txt est sans erreur

Code : Tout sélectionner

FileWrite(@scriptdir & "/TECHNICIENS/GANTS/" & $ecri2 & "/" & $ecri10 & ".txt", 'MsgBox ' &'"' &' L''agent ' & $ecri2 & ' doit vérifier ses gants avant 10 jours' & '"'& @CRLF)
Je me demande si j'utilise la bonne méthode pour générer mes fichier d'alerte VBS ????

merci beaucoup pour votre aide en tout cas :wink:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [...] Accents mal encodés

#6

Message par TommyDDR »

Essayez ceci :
#include <FileConstants.au3>

Local $file = FileOpen(@ScriptDir & "\test.txt", BitOR($FO_UTF8, $FO_APPEND))
FileWrite($file, "é")
FileClose($file)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [...] Accents mal encodés

#7

Message par jeanmimigab »

Bonsoir TommyDDR,

le test fonctionne bien en éditant du .txt, par contre si j'édite un vbs en adaptant ton code,

Code : Tout sélectionner

    #include <FileConstants.au3>

    Local $file = FileOpen(@ScriptDir & "\test.vbs", BitOR($FO_UTF8, $FO_APPEND))
    FileWrite($file, 'MsgBox ' & '"' & 'é' & '"' & @CRLF)
    FileClose($file)
cela me donne une erreur à l'exécution du fichier vbs (voir pièce jointe) et pourtant si j'ouvre le fichier test.vbs avec le bloc note, la rédaction est correcte

Code : Tout sélectionner

MsgBox "é"
Merci beaucoup pour ton aide
Fichiers joints
Capture.JPG
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Accents mal encodés

#8

Message par mikell »

Jusqu'à 3.3.12 Autoit encodait par défaut les FileWrite en ANSI, après c'est UTF8 without BOM :wink:

Code : Tout sélectionner

#include <FileConstants.au3>
     
Local $file = FileOpen(@ScriptDir & "\test.vbs", BitOR($FO_ANSI, $FO_APPEND))
FileWrite($file, 'MsgBox ' &'"' &' L''agent doit vérifier ses gants avant 10 jours' & '"'& @CRLF)    
FileClose($file)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Accents mal encodés

#9

Message par orax »

Je précise que dans la fenêtre de SciTE, le texte apparait sans erreurs, mais c'est l'exécution du script qui donne un résultat avec erreurs.
Si dans SciTE le code s'affiche correctement alors les manipulations avec Notepad++ ne serviront effectivement à rien.
Je me demande si j'utilise la bonne méthode pour générer mes fichier d'alerte VBS ????
Je pense que non. Par défaut, FileWrite écrira en UTF-8 sans BOM, mais si j'exécute un VBS encodé en UTF-8 sans BOM, dans lequel il y a des caractères accentués, l'affichage n'est pas correct. Et quand il y a un BOM UTF-8, le fichier VBS génère une erreur.
Il faudra utiliser FileOpen pour écrire dans le VBS.
FileOpen("fichier.vbs", BitOR($FO_ANSI, $FO_APPEND))
ou...
FileOpen("fichier.vbs", BitOR($FO_UTF16_LE, $FO_APPEND))
Je viens de voir que Mikell a été plus rapide ! :mrgreen:
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Accents mal encodés

#10

Message par mikell »

Je viens de voir que Mikell a été plus rapide ! :mrgreen:
dit en alexandrin, c'est carrément splendide ! :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
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: [...] Accents mal encodés

#11

Message par jchd »

Euh, ça fait 13 pieds, sauf si on écrit «d'voir».

Mais n'est-ce donc pas là que des vers bien candides,
Au pire de mirliton et au mieux insipides ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Accents mal encodés

#12

Message par mikell »

Question de prononciation - et de choix hiérarchique entre fun et intégrisme littéraire
Un balai ne devrait servir qu'à balayer
Les gens stricts en font un usage dévoyé
:mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [...] Accents mal encodés

#13

Message par jeanmimigab »

ouloulou, vous êtes trop fort les amis :D
La solution qui s'adapte bien à mon script est celle de mikell :D
comme cela...

Code : Tout sélectionner

;j moins 10*****************************************************************
$sNewDate = _DateAdd('d', -10, $formatEN)
$formatFR = StringRegExpReplace($sNewDate, '(\d{4})/(\d{2})/(\d{2})', "$3/$2/$1")
$ecri10 = StringReplace($formatFR, "/", "")
_FileCreate(@ScriptDir & "\TECHNICIENS\GANTS\" & $ecri2 & "\" & $ecri10 & ".vbs")
Local $file10 = FileOpen(@ScriptDir & "\TECHNICIENS\GANTS\" & $ecri2 & "\" & $ecri10 & ".vbs", BitOR($FO_ANSI, $FO_APPEND))
FileWrite($file10, 'MsgBox ' &'"' &' L''agent ' & $ecri2 & ' doit vérifier ses gants avant 10 jours' & '"'& @CRLF)
FileClose($file10)
Décidément l'aide apportée est toujours aussi efficace sur ce forum..!!!

Vous (admin, modo et membres actifs) faite une superbe équipe !

Bonne continuation à tous et toutes et à bientôt :wink:
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] Accents mal encodés

#14

Message par orax »

Juste quelques petites remarques.
_FileCreate me semble inutile.
Il y a des guillemets facultatives dans : ''MsgBox ' &'"' &' L''agent ' & $ecri2 & ' doit vérifier ses gants avant 10 jours' & '"'
On pourrait ajouter $FO_CREATEPATH pour créer la structure des répertoires si elle n'existe pas, mais c'est facultatif.
;j moins 10*****************************************************************
$sNewDate = _DateAdd('d', -10, $formatEN)
$formatFR = StringRegExpReplace($sNewDate, '(\d{4})/(\d{2})/(\d{2})', "$3/$2/$1")
$ecri10 = StringReplace($formatFR, "/", "")
Local $file10 = FileOpen(@ScriptDir & "\TECHNICIENS\GANTS\" & $ecri2 & "\" & $ecri10 & ".vbs", BitOR($FO_ANSI, $FO_APPEND, $FO_CREATEPATH))
FileWrite($file10, 'MsgBox "L''agent ' & $ecri2 & ' doit vérifier ses gants avant 10 jours"' & @CRLF)
FileClose($file10)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [R] Accents mal encodés

#15

Message par jeanmimigab »

Bonsoir orax,

effectivement j'ai eu la main lourde sur les guillemets :mrgreen:

Ta manière de faire sans _FileCreate fonctionne aussi très bien d'après le test que je viens de réalisé :D

Un grand merci pour tes conseils et bonne soirée :wink:
Répondre