VBA 将 ANSI 转换为 UTF-8文件

本文介绍了一种通过VBA编程去除UTF-8编码文件中的BOM头的方法。首先利用WriteOut子程序生成带有BOM头的UTF-8编码临时文件,接着使用Convert2utf8函数读取该文件并跳过前三个BOM字节,从而实现去除BOM头的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用的时候,先用WriteOut生成一个临时文件(UTF-8带BOM),
然后用Convert2utf8将BOM头的前三个字节删除。

----------------------------------------------------------

Private Sub WriteOut(strPath As String, str As String) 
    Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream") 
    With objStream
        .Type = 2               'adTypeText
        .Charset = "UTF-8"
        .Open
        .WriteText str
        .SaveToFile strPath, 2  'adSaveCreateOverWrite
    End With 
    Set objStream = Nothing
End Sub


Public Function Convert2utf8(fileName As String, FileTo As String) As Boolean
 
    Dim ReadIntFileNum, WriteIntFileNum As Integer
    ReadIntFileNum = FreeFile() '获取一个空文件
    WriteIntFileNum = FreeFile() + 1
     
    Open fileName For Binary As ReadIntFileNum
    Open FileTo For Binary As #WriteIntFileNum
'    Dim byteFrom, byteTo As String
    Dim fileByte As Long
    Seek #ReadIntFileNum, 4
   
    While Not EOF(ReadIntFileNum)
    
        Get #ReadIntFileNum, , fileByte
        Put #WriteIntFileNum, , fileByte
    Wend
    
    Close #ReadIntFileNum
    Close #WriteIntFileNum
    Kill fileName
End Function

转载于:https://www.cnblogs.com/zhengmy/p/3792470.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值