txt文件,如何人批量把ansi编码变成utf-8编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了txt文件,如何人批量把ansi编码变成utf-8编码相关的知识,希望对你有一定的参考价值。

本人有400本小说,不想下载软件就批量转换,我这分多的是,谁有好主意告诉我,没有满意的答案宁可被扣决不放手.

呵呵 我的qd也是同样的问题
百阅就是这个毛病 还真没什么好的办法 只有在电脑上用记事本打开,然后保存成ansi格式的
比较麻烦啊
参考技术A 呵呵,既然你不喜欢现有的成熟的工具,在网上给你找了一个不算工具的代码,

vbs版的:

文件名:编码转换.vbs

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("请输入要转换为的编码","","Unicode")
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
参考技术B 格式不对吧,MP4一般都是TXT格式的

vb中怎么把ansi转换成UTF-8

在VB中怎么把ANSI编码的文件转换成UTF-8的文件?

源码,谢谢啦

参考技术A Private Sub Command1_Click()
Dim FileName As String, b() As Byte, S As String
Dim ADO_Stream As Object
FileName = App.Path & "\1.txt" '请修改为具体文件名
If Dir(FileName) = "" Then Exit Sub
ReDim b(FileLen(FileName))
Open FileName For Binary As #1
Get #1, , b
Close #1
S = StrConv(b, vbUnicode)

Set ADO_Stream = CreateObject("ADODB.Stream")

With ADO_Stream
.Type = 2
.Mode = 3
.Charset = "utf-8"
.open
.WriteText S
.SaveToFile FileName, 2
End With

Set ADO_Stream = Nothing
MsgBox "文件转换完毕!"
End Sub本回答被提问者采纳
参考技术B 用StreamReader读text的时候可以指定编码的
StreamReader sr = new StreamReader(filePath, Encoding.UTF-8);
查一下msdn

以上是关于txt文件,如何人批量把ansi编码变成utf-8编码的主要内容,如果未能解决你的问题,请参考以下文章

请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。

求助:怎样用cmd命令把指定的a.txt文件的编码格式从ANSI转换为UTF-8。谢谢!

怎么大批量转变TXT的编码为UTF-8

高分求-VB 把ANSI文本转换成UTF-8,多谢!!

VB怎么把ANSI编码的txt文件转为UTF-8编码?

怎么把win10的txt文件将默认格式从UTF-8改为ANSI?