Word Document.SaveAs ignores encoding, when calling through OLE, from Ruby or VBS

后端 未结 3 1475
挽巷
挽巷 2021-01-14 14:25

I have a script, VBS or Ruby, that saves a Word document as \'Filtered HTML\', but the encoding parameter is ignored. The HTML file is always encoded in Windows-1252. I\'m u

3条回答
  •  渐次进展
    2021-01-14 14:48

    Hi Bo Frederiksen and kardeiz,

    I also encountered the problem of "Word Document.SaveAs ignores encoding" today in my "Word 2003 (11.8411.8202) SP3" version.

    Luckily I managed to make msoEncodingUTF8(namely, 65001) work in VBA code. However, I have to change the Word document's settings first. Steps are:

    1) From Word's 'Tools' menu, choose 'Options'.

    2) Then click 'General'.

    3) Press the 'Web Options' button.

    4) In the popping-up 'Web Options' dialogue, click 'Encoding'.

    5) You can find a combobox, now you can change the encoding, for example, from 'GB2312' to 'Unicode (UTF-8)'.

    6) Save the changes and try to rerun the VBA code.

    I hope my answer can help you. Below is my code.

    Public Sub convert2html()
        With ActiveDocument.WebOptions
            .Encoding = msoEncodingUTF8
        End With
    
        ActiveDocument.SaveAs FileName:=ActiveDocument.Path & "\" & "file_name.html", FileFormat:=wdFormatFilteredHTML, Encoding:=msoEncodingUTF8
    
    End Sub
    

提交回复
热议问题