2017-08-26 61 views

回答

1

您可能想使用Scripting.FileSystemObject(fso),因爲使用unicode時,文件編碼方式以及使用fso可以提供更多控制方面存在細微差異。例如,在我的一個項目中,我需要將文件保存爲普通的utf-8而不是utf-8-bom。默認行爲是將文件保存爲utf-8-bom,這意味着在文件開始時會有3個隱藏字符,稱爲字節順序標記(BOM)。在下面的代碼,這3個字符被複制移至新的流的文件保存爲純UTF-8

Dim fso As Scripting.FileSystemObject, stream1 As Stream, stream2 As Stream 
Sub saveFileAfterRemovingBOM(path As String) 
stream1.Position = 3 'skip BOM (byte order mark) 
Set stream2 = CreateObject("ADODB.Stream") 
With stream2 
    .Type = adTypeBinary 
    .Mode = adModeReadWrite 
    .Open 
    stream1.CopyTo stream2 
    stream1.Flush 
    stream1.Close 
    .SaveToFile path, adSaveCreateNotExist 'creates the file if it doesn't exist 
    .Flush 
    .Close 
End With 
End Sub 

的流& Scripting.FileSystemObject的要求在VBE加入參考如下之前:Microsoft腳本運行時&微軟的ActiveX數據對象庫(V16.1截至10/16)。要在VBE使用工具添加這些 - >引用...

enter image description here

+0

請注意,'dbf'。如何開發上面的'''.dbf'作爲dbf格式的出口範圍? – mgae2m

+0

'Microsoft ActiveX Data Objects Library(v6.1 of 10/16)'找不到。 「Microsoft ActiveX Data Objects 2.0 Library」爲「Microsoft ActiveX Data Objects 2.8 Library」。女巫應該被激活? – mgae2m

+0

我剛剛檢查了使用這些庫的項目,並且都出現在列表中。我在我的回答結尾添加了截圖。我正在使用Office 365,Windows 10.不知道爲什麼你沒有看到這些。 –

相關問題