0

我正在使用 vba 进行数据提取项目,在我的代码中,我有包含数据的字符串,并且在生成文本文件期间,我想将整个文本转换为 utf-8 编码字符串。我的代码如下。

Set fso = CreateObject("Scripting.FileSystemObject")
Dim Fileout As Object                                                                                                            
Set Fileout = fso.CreateTextFile("C:\Data\colorsizew" & Format(Now(), "_yyyy-mm-dd_hh-mm-ss") "_" & ".txt", True, True)          

'Set Fileout = StrConv(Fileout, vbUnicode)                                                                                       

Dim dbs As DAO.Database                                                                                                          
Set dbs = CurrentDb                                                                                                              

news = asin_map                                                                                                                  
news = MyClean(news)                                                                                                             
'news = MyClean(news)                                                                                                            
news = Replace(news, "|", vbLf)                                                                                                  
news = Replace(news, "{}", "|")                                                                                                  
'news=iconv -c -t utf8 filename.csv > filename.utf8.csv                                                                          
'---------------------utf-8                                                                                                      
'here i want to convert news string in to utf-8                                                                                   
'------------------ends here                                                                                                     

Fileout.Write news                                                                                                               
4

1 回答 1

0

您可以使用 Microsoft ActiveX 数据对象 (ADO) 以 UTF-8 格式保存文件。试试下面的代码...

早期绑定

首先设置对 Microsoft ActiveX 数据对象 XX 库的引用(Visual Basic 编辑器 >> 工具 >> 参考)。

Dim streamObject As ADODB.Stream
Set streamObject = New ADODB.Stream

Dim news As String
news = "string here. . ."

With streamObject
    .Charset = "utf-8"
    .Mode = adModeReadWrite
    .Type = adTypeText
    .Open
    .WriteText Data:=news
    .SaveToFile Filename:="C:\Data\colorsizew" & Format(Now(), "_yyyy-mm-dd_hh-mm-ss") "_" & ".txt", Options:=adSaveCreateOverWrite
    .Close
End With

后期装订

Dim streamObject As Object
Set streamObject = CreateObject("ADODB.Stream")

Dim news As String
news = "string here. . ."

With streamObject
    .Charset = "utf-8"
    .Mode = 3 'adModeReadWrite
    .Type = 2 'adTypeText
    .Open
    .WriteText Data:=news
    .SaveToFile Filename:="C:\Data\colorsizew" & Format(Now(), "_yyyy-mm-dd_hh-mm-ss") "_" & ".txt", Options:=2 'adSaveCreateOverWrite
    .Close
End With
于 2020-05-13T11:21:42.717 回答