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的文件?
源码,谢谢啦
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编码的?就右键另存为那种,但是量太大。