Vbscript 将编码转换为ANSI
我一直在尝试将编码为UTF8的文本文件转换为编码为ANSI的文本文件。 我使用的是我在这个平台中找到的一个脚本。 以下是脚本:Vbscript 将编码转换为ANSI,vbscript,Vbscript,我一直在尝试将编码为UTF8的文本文件转换为编码为ANSI的文本文件。 我使用的是我在这个平台中找到的一个脚本。 以下是脚本: ' Usage: ' EncodeFile strInFile, "UTF-8", strOutFile, "Windows-1254", 2 Sub EncodeFile(strInputFile, strInputCharset, strOutputFile, strOutputCharset, intOverwriteMode) '5th parameter
' Usage:
' EncodeFile strInFile, "UTF-8", strOutFile, "Windows-1254", 2
Sub EncodeFile(strInputFile, strInputCharset, strOutputFile, strOutputCharset, intOverwriteMode)
'5th parameter may take the following values:
'Const adSaveCreateOverWrite = 2
'Const adSaveCreateNotExist = 1
Const adReadLine = -2
Const adTypeBinary = 1
Const adTypeText = 2
Const adWriteLine = 1
Set objInputStream = CreateObject("ADODB.Stream")
Set objOutputStream = CreateObject("ADODB.Stream")
With objInputStream
.Open
.Type = adTypeBinary
.LoadFromFile strInputFile
.Type = adTypeText
.Charset = strInputCharset
objOutputStream.Open
objOutputStream.Charset = strOutputCharset
Do While .EOS <> True
strText = .ReadText(adReadLine)
objOutputStream.WriteText strText, adWriteLine
Loop
.Close
End With
objOutputStream.SaveToFile strOutputFile, intOverwriteMode
objOutputStream.Close
End Sub
”用法:
'EncodeFile strInFile,“UTF-8”,strOutFile,“Windows-1254”,2
子编码文件(strInputFile、strInputCharset、strOutputFile、strOutputCharset、intOverwriteMode)
'第5个参数可采用以下值:
'常量adSaveCreateOverWrite=2
'常量adSaveCreateNotExist=1
常数adReadLine=-2
常量adTypeBinary=1
常量adTypeText=2
常数adWriteLine=1
设置objInputStream=CreateObject(“ADODB.Stream”)
设置objOutputStream=CreateObject(“ADODB.Stream”)
有一条小溪
打开
.Type=adTypeBinary
.LoadFromFile strInputFile
.Type=adTypeText
.Charset=strInputCharset
对象输出流。打开
objOutputStream.Charset=strOutputCharset
请稍等,真的吗
strText=.ReadText(adReadLine)
objOutputStream.WriteText strText,adWriteLine
环
.结束
以
objOutputStream.SaveToFile strOutputFile,intOverwriteMode
对象输出流。关闭
端接头
请注意,在运行调用此脚本的cmd时,我得到一个0 kb的新txt文件,编码更改为ANSI。
但是文本文件中的所有信息都不存在
如何在将数据保存在文本文件中的同时转换为编码
任何人都请帮忙
@Echo off
SET CHEMINDAT = C:\Desktop\convertry\Scripts\
echo %DATE% %TIME% Debut de traitement.
for %%a in (C:\Desktop\convertry\Scripts\*.txt) do (
cscript //NoLogo C:\Desktop\convertry\Scripts\unix2dos_3.vbs <%CHEMINDAT%%%a >>%%a.txt
del %%a
)
pause
exit /b 1
@Echo关闭
设置chemandata=C:\Desktop\convertry\Scripts\
回显%DATE%%TIME%首次登场记录。
对于(C:\Desktop\convertry\Scripts\*.txt)中的%%a,请执行以下操作(
cscript//NoLogo C:\Desktop\convertry\Scripts\unix2dos_3.vbs>%%a.txt
德尔%%a
)
暂停
退出/b 1
EncodeFile“infle”、“UTF-8”、“OutFile”、“Windows-1254”,2
适合我(我没有测试strInputFile
=strOutputFile
案例)。你能向我解释一下,你使用的确切代码是什么,你是如何启动的,我是使用批处理脚本启动的。对不起。你应该给出一个失败代码的例子。请使用该功能添加。您好,您可以看到我的批处理脚本已添加1。正如当前编写的那样,EncodeFile
过程已声明但从未调用,vbs
脚本本身不接受任何参数。2.删除变量设置中=
(等号)周围的空格:使用设置“chemandata=C:\Desktop\convertry\Scripts\”
。3.EncodeFile
过程本身将数据写入输出文件,并且不产生任何输出,那么为什么>%%a.txt
?