Dim txtFile, fileObj, streamObj, s Set txtFile = CreateObject(fileName) Set streamObj = CreatreObject("adodb.Stream") streamObj.Charset = "UTF-8" streamObj.open Set fileObj = txtFile.OpenTextFile("filePath") Do Until fileObj.AtEndOfStream s = fileObj.ReadLine txtObj.WriteText s Loop txtObj.SaveToFile "D:\A4\Message_tool\surya.msg", 2 fileObj.Close
After the execution this code the encoding format of surya.msg is "ANSCII" but I want it to be "UTF-8"
Const adTypeText = 2 Const adSaveCreateOverWrite = 2 Dim inputFile, outputFile inputFile = "input_file.txt" outputFile = "output_file.txt" Dim inputStream Set inputStream = WScript.CreateObject("adodb.stream") With inputStream .Type = adTypeText .Charset = "unicode" .Open .LoadFromFile inputFile End With Dim outputStream Set outputStream = WScript.CreateObject("adodb.stream") With outputStream .Type = adTypeText .Charset = "utf-8" .Open .WriteText inputStream.ReadText .SaveToFile outputFile, adSaveCreateOverWrite End With inputStream.Close outputStream.Close
Unicode-encoded text files can be opened in the usual way using the OpenTextFile()
method of the FileSystemObject
class. Just pass True
/-1
for the 4th ("format") parameter.
strText = objFSO.OpenTextFile(inputFile, , , True).ReadAll()
To encode your text as UTF-8, you'll need to use the ADO Stream
class.
Const adTypeText = 2 Const adSaveCreateOverWrite = 2 With CreateObject("ADODB.Stream") .Type = adTypeText .Charset = "utf-8" .Open .WriteText strText .SaveToFile "D:\A4\Message_tool\surya.msg", adSaveCreateOverWrite End With
For a list of character encodings supported by Windows, look within the following registry key:
HKEY_CLASSES_ROOT\MIME\Database\Charset