[R]xEFxBFxBF#Region

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

[R]xEFxBFxBF#Region

#1

Message par GMH »

Bonjour,

Lorsque j'ouvre un code dans SciTE, les lettres xEFxBFxBF s'affichent en tête de la ligne #Region.

Savez-vous ce que cela signifie et comment l'éviter ?

Je vous remercie.
Modifié en dernier par GMH le ven. 07 août 2020 14:47, modifié 1 fois.
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: [..]xEFxBFxBF#Region

#2

Message par walkson »

Bonjour,
Peut être un début de solution https://www.autoitscript.com/forum/topi ... -ef-bf-bf/
D'où ma question: avez vous la dernière version de SciTe ?
https://www.autoitscript.com/site/autoit-script-editor/
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: [..]xEFxBFxBF#Region

#3

Message par GMH »

Bonjour et merci pour votre réponse,

Le message du forum que vous me proposez expose bien le même problème. Mon programme, comprenant des caractères non latins, est encodé en UTF-16 Little Endian,

La version de mon SciTE est 4.1.2 du 13 février 2019.
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: [..]xEFxBFxBF#Region

#4

Message par jchd »

Choisir plutôt UTF8 pour l'encodage des sources et l'affichage console avec une police lisible et assez complète (e.g. DejaVu Sans Mono). Ensuite remplacer vos ConsoleWrite() par CW() et voilà. Notez que ce CW() ajoute un @LF.

Code : Tout sélectionner

Local $s

; Mixed language strings
$s = "Μεγάλο πρόβλημα  Большая проблема  大问题  बड़ी समस्या  مشكلة كبيرة"
CW($s)

; A familly with different Fitzpatrick settings = only one glyph
$s = ChrW(0xD83D) & ChrW(0xDC68) & ChrW(0xD83C ) & ChrW(0xDFFB) & ChrW(0x200D) & ChrW(0xD83D) & ChrW(0xDC69) & ChrW(0xD83C) & ChrW(0xDFFF) & ChrW(0x200D) & ChrW(0xD83D) & ChrW(0xDC66) & ChrW(0xD83C) & ChrW(0xDFFD)
CW($s)

; Transport emojis
$s = ""
For $i = 0xDE80 To 0xDEFF
	$s &= ChrW(0xD83D) & ChrW($i)		; U+1F680 to U+1F6FF
	If Mod($i, 16) = 15 Then
		CW($s)
		$s = ""
	EndIf
Next

; --------------------

Func CW($s = "")
	Return (@Compiled ? _CUI_ConsoleWrite : _ConsoleWrite)($s)
EndFunc   ;==>CW

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

Func _CUI_ConsoleInit()
	DllCall("kernel32.dll", "bool", "AllocConsole")
	DllCall("kernel32.dll", "bool", "SetConsoleOutputCP", "int", 65001)	; console to UTF8
	Return DllCall("kernel32.dll", "handle", "GetStdHandle", "int", -11)[0]
EndFunc   ;==>_CUI_ConsoleInit

; Unicode-aware ConsoleWrite
Func _ConsoleWrite($s)
	ConsoleWrite(BinaryToString(StringToBinary($s & @LF, 4), 1))
EndFunc   ;==>_ConsoleWrite
On peut préciser une police ad-hoc pour la console CUI (encore une fois je recommande DejaVu Sans Mono).
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: [..]xEFxBFxBF#Region

#5

Message par GMH »

Bonjour, et merci pour la solution : L'encodage UTF8 résout le problème : plus de caractères gênants en début de code.
J'ai tenté de changer la police dans les Options de SciTE, mais la sauvegarde du fichier d'options ne se fait pas si on ne change pas son nom. Comment s'y prend-on ?
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: [..]xEFxBFxBF#Region

#6

Message par jchd »

Dans C:\Users\XXXXXX\AppData\Local\AutoIt v3\SciTESciTEUser.properties, j'ai ça :

font.monospace=font:DejaVu Sans Mono,size:11
code.page=65001
output.code.page=65001
NewFileEncoding=UTF8
utf8.auto.check=4
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]xEFxBFxBF#Region

#7

Message par GMH »

C'est impeccable. Grand merci pour tout ce que j'apprends.
Répondre