Bueno, en algunos casos, tenemos que hacer esto en WSH en una máquina sin ADO. En este caso, tenga presente que WSH no crea archivos en formato UTF-8 (el método CreateTextFile no funciona con UTF-8), pero es completamente posible manipular un archivo UTF-8 (datos adjuntos). Pensando esto, encontré una solución no ortodoxal. Seguir los siguientes pasos:
1) Abrir un cuaderno en blanco, haga clic en Archivo> Guardar como, escriba un nombre para el archivo (como UTF8FileFormat.txt, por ejemplo), cambie el campo "codificación" UTF-8 y haga clic en [Salvar]. Deje NOTEPAD.
2) En su WSH, utilizará UTF8FileFormat.txt para crear su archivo de texto UTF8. Para ello, después de su declaración FileSystemObject, utilice el método CopyFile para copiar el archivo UTF8FileFormat.txt a un archivo nuevo (recuerde usar la opción Sobrescribir) y, a continuación, utilice el método OpenTextFile para abrir su nuevo archivo con las opciones ForAppending y NoCreate. Después de esto, podrá escribir en este archivo normalmente (como en el método CreateTextFile). Su nuevo archivo estará en formato UTF-8. A continuación, siga un ejemplo:
'### START
' ### REMEMBER: You need to create the UTF8FileFormat.txt file in a blank
' ### NOTEPAD with UTF-8 Encoding first.
Unicode=-1 : ForAppending=8 : NoCreate=False : Overwrite=True
set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "UTF8FileFormat.txt","MyNewUTF8File.txt",Overwrite
set UTF8 = fs.OpenTextFile("MyNewUTF8File.txt", ForAppending, NoCreate)
UTF8.writeline "My data can be writed in UTF-8 format now"
UTF8.close
set UTF8 = nothing
'### END
¿Qué significa 'unicode' en vbscript? ¿Qué codificación realmente usa? –
vbscript probablemente esté escribiendo archivos en codificación UTF-16 como valor predeterminado. UTF-16 tendrá 0x00 en todo el lugar como el byte de orden superior en el texto occidental. Y, para no ser pedante, pero UTF-8 * es * Unicode; es un esquema de codificación Unicode particular. – DaveE
¿Alguna de las siguientes dos respuestas te ayudó/fue útil? :-) – stealthyninja