VBA : enregistrer un fichier en UTF-8 sans BOM
c'est probablement qqch simple, voici ce que j'ai essayé :
Set objStream = CreateObject("ADODB.Stream")
Set objStreamNoBOM = CreateObject("ADODB.Stream")
With objStream
.Open
.Charset = "UTF-8"
.WriteText "aaaaaa"
.Position = 0
End With
With objStreamNoBOM
'.Charset = "Windows-1252" ' WORK
.Charset = "UTF-8" ' DOESN'T WORK!!
.Open
.Type = 2
.WriteText objStream.ReadText
.SaveToFile "toto.php", 2
.Close
End With
objStream.Close
si le jeu de caractères UTF-8, alors il n'y a ï» au début du fichier.
La moindre idée sur la façon d'enregistrer un fichier en UTF-8 sans BOM?
OriginalL'auteur Julien | 2015-07-15
Vous devez vous connecter pour publier un commentaire.
Dans le meilleur des mondes possibles la liste devrait contenir une référence à cette question que j'ai trouvé que le premier hit pour "vbscript adodb.flux de nomenclature vbscript site:stackoverflow.com".
Basé sur la deuxième stratégie de stimuler la réponse de:
Preuve:
adSaveCreateNotExist
est une constante inutilisésOriginalL'auteur Ekkehard.Horner
Je savais que le Script de Système de Fichier de l'Objet de flux d'insérer une Marque d'Ordre des Octets, mais je n'ai pas vu que le ADODB Flux.
Ou du moins, pas encore: j'utilise rarement le ADODB objet de flux de données...
Mais je n'oublie pas de mettre ce commentaire dans le code il y a quelques années:
Vous pouvez le dire, j'étais dans un mauvais jour.
Ensuite, à l'aide de la préhistoire de METTRE les commandes à partir de l'époque avant le fichier de manutention a émergé de la primordiale C:
Donc, il y a du code qui en fait n':
Je suis en supposant que strText est en fait en UTF-8. Je veux dire, nous sommes en VBA, Microsoft Office, et nous absolument sais que cela va toujours être en UTF-8, nous avons tout de même l'utiliser dans un pays étranger...
...Droit?
OriginalL'auteur Nigel Heffernan