如何用VB 把1个UTF-8编码文本文档转换为ANSI?

时间:2023-01-06 12:57:57
C:\xxx.txt 该文本为 编码为 UTF-8,想转换为 ANSI,怎么做呢?


网上很多代码都是 ANSI 转 UTF-8 的

下面就是ANSI 转 UTF-8 ,   能否修改为  UTF-8 转 ANSI ???

Public Sub FileToUTF8(FileName As String)
    Dim fBytes() As Byte, uniString As String, freeNum As Integer
    Dim ADO_Stream As Object
    
    freeNum = FreeFile
    
    ReDim fBytes(FileLen(FileName))
    Open FileName For Binary Access Read As #freeNum
        Get #freeNum, , fBytes
    Close #freeNum
    
    uniString = StrConv(fBytes, vbUnicode)
    
    Set ADO_Stream = CreateObject("ADODB.Stream")
    With ADO_Stream
        .Type = 2
        .Mode = 3
        .Charset = "utf-8"
        .open
        .WriteText uniString
        .SaveToFile FileName, 2
        .Close
    End With
    Set ADO_Stream = Nothing
End Sub 

12 个解决方案

#1


用ADO_Stream以UTF-8方式读取文本,再以GBK方式保存文本就行了。Charset属性是设置编码方式的。

#2


楼上的大侠,能不能提供下代码??

菜鸟在线焦急等啊等啊

#3


抱歉,我现在好困。我要睡觉去了。如果你需要明天给你写。

#4


睡醒了记得帮下小弟啊

#5


顶1下

#6


再顶

#8


你的 ZIP 文件 不能解压,出错的!!!!!

文件已损坏···

#9


你留个联系方式,我传给你。

#10


lzz@qq.com
谢谢

#11


已发送

#12


引用楼主 zanze 的回复:
C:\xxx.txt 该文本为 编码为 UTF-8,想转换为 ANSI,怎么做呢?

用记事本打开,另存为ANSI,不就OK了.

#1


用ADO_Stream以UTF-8方式读取文本,再以GBK方式保存文本就行了。Charset属性是设置编码方式的。

#2


楼上的大侠,能不能提供下代码??

菜鸟在线焦急等啊等啊

#3


抱歉,我现在好困。我要睡觉去了。如果你需要明天给你写。

#4


睡醒了记得帮下小弟啊

#5


顶1下

#6


再顶

#7


#8


你的 ZIP 文件 不能解压,出错的!!!!!

文件已损坏···

#9


你留个联系方式,我传给你。

#10


lzz@qq.com
谢谢

#11


已发送

#12


引用楼主 zanze 的回复:
C:\xxx.txt 该文本为 编码为 UTF-8,想转换为 ANSI,怎么做呢?

用记事本打开,另存为ANSI,不就OK了.