问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VBA输出txt 中文乱码 如何设置成UTF-8

发布网友 发布时间:2022-04-25 17:57

我来回答

2个回答

热心网友 时间:2023-10-23 01:02

把下面代码保存为“转换.vbs”,运行它就可以批量转换TXT文件的编码了。
on error resume next
Set WshShell=WScript.CreateObject("Shell.Application")
dirPath=WshShell.BrowseForFolder(0, "请选择路径", 0, "").items().item().path
if right(dirPath,1)<>"\" then dirPath=dirpath&"\"
ma=inputbox("请输入要转换为的编码","","UTF-8")
if ma="" or dirPath="\" or msgbox("在使用前请确认已备份文件夹"&dirPath,1)=2 then WScript.Quit

'遍历文件夹下的文件
Set FSO = CreateObject("scripting.filesystemobject")
Set f = FSO.GetFolder(dirPath)
Set fs = f.files
For Each fileN in fs
FN=dirPath&fileN.name&""
if ".txt"=lcase(right(FN,4)) then Call WriteToFile(FN, ReadFile(FN, CheckCode(FN)), ma)
Next
Set FSO = Nothing
wscript.echo "全部成功"

'检测文件的编码
Function CheckCode (FileUrl)
Dim slz
set slz = CreateObject("Adodb.Stream")
slz.Type = 1
slz.Mode = 3
slz.Open
slz.Position = 0
slz.Loadfromfile FileUrl
Bin=slz.read(2)
if AscB(MidB(Bin,1,1))=&HEF and AscB(MidB(Bin,2,1))=&HBB Then
Codes="UTF-8"
elseif AscB(MidB(Bin,1,1))=&HFF and AscB(MidB(Bin,2,1))=&HFE Then
Codes="Unicode"
else
Codes="GB2312"
end if
slz.Close
set slz = Nothing
CheckCode=Codes
End Function

'以指定的编码读取文件
Function ReadFile(FileUrl, CharSet)
On Error Resume Next
Dim Str
Set stm = CreateObject("Adodb.Stream")
stm.Type = 2
stm.mode = 3
stm.charset = CharSet
stm.Open
stm.loadfromfile FileUrl
Str = stm.readtext
stm.Close
Set stm = Nothing
wscript.echo Str
ReadFile = Str
End Function

'以指定的编码写文件
Function WriteToFile (FileUrl, Str, CharSet)
On Error Resume Next
Set stm = CreateObject("Adodb.Stream")
stm.Type = 2
stm.mode = 3
stm.charset = CharSet
stm.Open
stm.WriteText Str
stm.SaveToFile FileUrl, 2
stm.flush
stm.Close
Set stm = Nothing
End Function

热心网友 时间:2023-10-23 01:02

如果是excel vba 输出的话,那么另存的语句可以是下面这样,后面追加设定txt的format就可以了

ThisWorkBook.SaveAs Filename:="d:\data\" & str & ".txt", FileFormat:=xlUnicodeText

上次请教了VBA中汉字转GB2313,实践中还有需要转UTF8的情况,继续请教...

End Function 以下是转化为UTF8编码的函数,如果要修改为单元格,需要自己修改下 Function SaveToUTF8(sStr As String)Dim DAT() As String, DAT1() As Byte, ST As String Dim Z As String Dim zTem As String Dim zCod As String Dim zHex As String Dim zBin As String Dim zRes As...

PDF可以转换为WORD吗?

1.当然可以,首先要确定自己有一个pdf文档,而且确定目的是需要将pdf文档转换为word格式,然后我们将现有文档通过迅捷pdf转换器软件打开。2.通过选择PDF转换页面功能其中的PDF文件转WORD项目拖入文件。3.接着在迅捷pdf转换器下方按自己的需要是...

用VBA向数据库表里插入中文字段是乱码,怎么调?

首先把你的页面设置成这个字符集:Window--Preferences--输入jsp,搜索--点击jsp--在相应的字符集设置上设置成自己想要的编码集。如果这样还是不行的话,说明你数据库字符集设置有问题,这样设置:首先把MySQL的服务停掉 在运行窗口输入:net stop mysql 把服务器和客户端的字符集改成自己想用的字符集...

vba中如何把unicode字符串转化成utf-8的字节数组?哪位大神可以帮我解决...

tt = BytesToBstr(.ResponseBody, "UTF-8") Function BytesToBstr(strBody, CodeBase) '使用Adodb.Stream对象提取字符串 Dim objStream On Error Resume Next Set objStream = CreateObject("Adodb.Stream") With objStream .Type = 1 '二进制 .Mode = 3 '读写 ...

vb unicode问题 例如utf8 转换

LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。) 设置值 conversion 参数的设置值为: 常数 值 说明 vbUpperCase 1 将字符串文字转成大写。 vbLowerCase 2 将字符串文字转成小写。 vbProperCase 3 将字符串中每个字的开头字母转成大写。 vbWide...

excel的VBA编码问题

回答:要用到AdoStream对象,你自己搜一下教程学习一下就会了。

win7 Excel2016 VBA代码出现问号 是哪里有问题?

这是编码问题,VBA内部用unicode编码,如果在复制过程中编码格式变了(比如变为utf-8或者gb2312等),就会出现乱码(只有汉字会乱码,英文字母和数字是不会的)。正确的做法是在VBA中通过“导入导出”的方式来交换文件(在别人电脑上导出,把文件整体复制到你的电脑,然后导入),而不要简单地用复制粘贴...

excel乱码怎么转换成数字excel乱码怎么转换成数字快捷键

比如UTF-8和GBK等,因此需要使用转换工具将乱码转换为数字。一种简单方法是使用“数据”选项卡中的“文本转列”功能,将乱码以固定宽度的形式分隔开,并按照指定的列宽进行转换。另外,可以使用VBA宏编程语言或者Python等编程语言,通过读取数据文件并按照指定的编码方式进行转换,将乱码转换为数字。

Excel VBA如何用WriteLine输出该字符串?

EXCEL VBA中,没有WriteLine语句,没办法输出字符串。在excel VBA中,写文件使用write,先要打开一个输入文件,代码:Open "c:\w.txt" For Output As 1 Write #1, "test"

EXCEL VBA 读AS400数据中文乱码问题

看一下你使用的User Profile的CCSID,看和你字段的CCSID能不能对上。

金苗系统导出的EXCEL表格中乱码删除方法?

1. 选择整列或整行:在Excel表格中,点击需要删除乱码的列或行的标头字母或数字,以选中整列或整行。2. 打开“数据”选项卡:在Excel顶部菜单栏中找到“数据”选项卡,并点击打开。3. 点击“文本转换”功能:在“数据”选项卡中,找到“文本转换”功能区,并点击打开。4. 选择“删除特殊字符”:在...

程序输出时出现乱码为什么 c语言读文件输出是乱码 txt文件乱码怎么解决 c语言输出乱码怎么解决 jsp乱码如何解决 txt打开乱码怎么解决
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
360摄像头怎么拆开维修 WPS表格误删除后如何恢复 阅读:&lt;七颗钻石&gt;中的七颗钻石升到了天上,变成了七颗星星,这样写的目的... 端午粽手工怎么做端午粽子的做法 端午节粽子怎么做 新硬盘分区不成功是怎么回事? 有谁买去组装苹果6手机,只看电影,打电话,微信,能用吗 苹果手机怎么边打电话边微信 vm虚拟机安装教程(虚拟机安装macos详细步骤) 己交上物业维修费,包括不包括窗户把手己坏了 vbscript msgbox 乱码 Win10系统,设置了一个TXT文本,转换为VBS之后乱码了,怎么解决? 有一个vbs文件 病毒一部分 里面是乱码我想看看是什么内容 网址链接是乱码,VBS怎么用算它后面的文件名 用vbs执行sql语句出现乱码? BAT,VBS,TXT文件乱码 vbs 中使用xmlhttp对象,收到的中文是乱码,如何解决? vbs计算结果乱码 怎么用vbs区分两个标题相同的窗口,vbs输入数字成乱码 恶作剧之吻什么意思. vbs 获得网页的源代码时出现乱码,怎么解决。 vbs 文件运行时,显示效果部分的中文乱七八糟的,是什么? 为什么我的IPHONE 4弄飞行模式,人家打电话给我,飞行模式在开怎么收不到他打电话给我的短信 发送iMessage信息,刚点了发送又不小心点了飞行模式,可是关闭飞行模式后又显示已发送,那么对方 苹果手机发短信imessage没显示已送达,对方有没有收到?之前发的都显示已... 如果对方不是iPhone 那么用iMessage 发短信他会不会收到 对方关闭了imessage,我开着发送短信时开启了飞行模式删除短信。还会发送出去吗? 飞行模式下连接wifi。 能使用imassage吗? iphone飞行模式开wifi能收到iMessage吗? 为什么iphone6plus开了飞行模式还可以接受短信 ASP.vbs 读取、输出文本内容为什么是乱码!!!???求教,急~ VBS中,在新建的txt文本中用Writeline(&quot;tset1,2,3&quot;),txt文件里面为什么是乱码啊 PKPM软件画图轴线中间部分我想取消,如何做 pkpm里的正交轴网里怎么删除轴线 PKPM轴网怎么删不掉 pkpm2010建模型时 出现名为 [ 的轴线怎么办 土木工程,pkpm,怎么删除多余正交轴线 为什么我的pkpm节点删除不了 PKPM节点如何确定删除的理由? PKPM工作目录的痕迹怎么删除? PKPM pkpm.INI 可以删除吗 PKPM中如何做才能看到轴线编号 STM32能干什么? 用流量看抖音视频时,老是提示非wifi,注意流量,怎么关掉这个提示,两三秒出现一次,非常恶心? 怎么样将企业抖音号上的直播提醒关掉? 如何关闭抖音免流量弹窗 怀孕了做梦捡了好多的红薯和萝卜是什么意思啊 什么是全息互动投影技术? 地面互动投影是什么? 全息投影互动地面贴什么砖?