[Résolu] Ecrire un fichier au format UTF-8

Ecrire un fichier au format UTF-8 [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 28-03-2006 à 10:46:42    

:hello:  
 
Je cherche à écrire des fichiers au format utf-8, mais avec la méthode  

Code :
  1. object.OpenTextFile (filename [, iomode[, create[, format]]])


Le format n'est 'que' Unicode ou ASCII ...
 
Avez vous une solution ?
 
Merci d'avance


Message édité par didier1809 le 30-03-2006 à 10:45:40

---------------
.
Reply

Marsh Posté le 28-03-2006 à 10:46:42   

Reply

Marsh Posté le 28-03-2006 à 12:38:57    

:sweat:


---------------
.
Reply

Marsh Posté le 28-03-2006 à 14:10:26    

Apparement, ca n'a pas l'air bien répendu ce type de question :(


---------------
.
Reply

Marsh Posté le 29-03-2006 à 08:46:41    

:hello:


---------------
.
Reply

Marsh Posté le 29-03-2006 à 15:04:33    

Pas de solution ?
 
(Je ne veux pas ouvrir chaque fichier avec notepad++ pour l'encoder en UTF-8, j'ai plus de 10.000 fichiers à écrire  [:psywalk] )


---------------
.
Reply

Marsh Posté le 30-03-2006 à 10:45:17    

J'ai trouvé la solution :
 
1. The old visual basic file commands shouldn't be used. If I remember correctly, Microsoft didn't even provide documentation for those command in VB6. They want you to use FSO or ADODB
 
2. Unicode is a collection of character sets (e.g. UTF-16, UTF-8). Each encoding will produce a different file (i.e. size and contents)
 
3. StrConv(strText, vbUnicode) produces UTF-16 (the default Windows Unicode format) not UTF-8
 
4. Set objTextStream = objFSO.CreateTextFile(strFile, , True) outputs as UTF-16 not UTF-8
 
There's only one way to do what your asking. Use a stream.
 
For example ...
 

Code :
  1. Private Sub CreateFile(ByVal pstrFile As String, ByVal pstrData As String)
  2.   Dim objStream As Object
  3.  
  4.   'Create the stream
  5.   Set objStream = CreateObject("ADODB.Stream" )
  6.   'Initialize the stream
  7.   objStream.Open
  8.   'Reset the position and indicate the charactor encoding
  9.   objStream.Position = 0
  10.   objStream.Charset = "UTF-8"
  11.  
  12.   'Write to the steam
  13.   objStream.WriteText pstrData
  14.  
  15.   'Save the stream to a file
  16.   objStream.SaveToFile pstrFile
  17.  
  18. End Sub


---------------
.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed