这个问题在这里已有答案:
我根据用户数据制作了一个excel宏来一次发送多封电子邮件。我将.body更改为.htmlbody以允许使用粗体等;但是,当我拨打电子邮件签名时,它会在电子邮件中的实际签名之前放置我发现这是由于UTF-BOM编码,但是,在这种情况下,我无法简单地更新文件的编码。我需要脚本实际使用更新的(UTF-8)编码打开文件,但根本不改变文件。到目前为止,这是我的代码。我离开了大部分代码,因为我相信唯一的更新将在“GetBoiler”功能上完成。
Dim SigString As String
Dim Signature As String
SigString = Environ("appdata") & _
"\Microsoft\Signatures\Default English - Main.htm"
If Dir(SigString) <> "" Then
Signature = GetBoiler(SigString)
Else
Signature = ""
End If
Function GetBoiler(ByVal sFile As String) As String
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
FSO只能读取ASCII文本文件。您不能使用FSO读取Unicode文件或读取二进制文件格式,如Microsoft Word或Microsoft Excel。
既然你有奇怪的字符,我想这有点不正确,文件是在一些8位的Windows代码页中读取的,因为如果它真的只能读取ASCII,你会看到
????
无论如何,如果你可以使用ADO,你可以这样做:
Dim objStream, strData Set objStream = CreateObject("ADODB.Stream") objStream.CharSet = "utf-8" objStream.Open objStream.LoadFromFile("C:\Users\admin\Desktop\ArtistCG\folder.txt") strData = objStream.ReadText() objStream.Close Set objStream = Nothing
(Qazxswpoi)