求批处理,把拖入文本都变成UTF-8编码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求批处理,把拖入文本都变成UTF-8编码相关的知识,希望对你有一定的参考价值。
只要能把拖入的ANSI和unicode编码的文本转成UTF-8就好了。
要能插在bat里执行的就可以了嗯。
只要能让bat处理过后编码能统一就好了。ANSI编码也可以的,不一定要UTF-8(最好是UTF-8)
::
:: file2utf8.bat
:::::::::::::::::::::::::::::::::::::::::::::::::::
::文件编码转换 GB2312 or UNICODE to UTF-8
:: by OGRobot at 2011-11-09
::
:: 执行方式:
:: file2utf8.bat 文件名
::
@echo off
set Script=%temp%\FileToUtf8.vbs
echo function checkcode(path) > %Script%
echo set inStream=CreateObject("ADODB.Stream") >> %Script%
echo inStream.Type=1 >> %Script%
echo inStream.Mode=3 >> %Script%
echo inStream.Open >> %Script%
echo inStream.Position=0 >> %Script%
echo inStream.LoadFromFile path >> %Script%
echo bom=inStream.Read(2) >> %Script%
echo If AscB(MidB(bom,1,1))=^&HEF And AscB(MidB(bom,2,1))=^&HBB Then >> %Script%
echo checkcode="UTF-8" >> %Script%
echo ElseIf AscB(MidB(bom,1,1))=^&HFF And AscB(MidB(bom,2,1))=^&HFE Then >> %Script%
echo checkcode="UNICODE" >> %Script%
echo Else >> %Script%
echo checkcode="GB2312" >> %Script%
echo End If >> %Script%
echo inStream.Close >> %Script%
echo set inStream=nothing >> %Script%
echo end function >> %Script%
echo/ >> %Script%
echo inCharset=checkcode(Wscript.Arguments(0)) >> %Script%
echo If inCharset^<^>"UTF-8" Then >> %Script%
echo set fso=CreateObject("Scripting.FileSystemObject") >> %Script%
echo fso.CopyFile Wscript.Arguments(0), Wscript.Arguments(0) ^& ".bak" >> %Script%
echo set inStream=CreateObject("ADODB.Stream") >> %Script%
echo inStream.Type=2 >> %Script%
echo inStream.Mode=3 >> %Script%
echo inStream.Charset=inCharset >> %Script%
echo inStream.Open >> %Script%
echo inStream.LoadFromFile Wscript.Arguments(0) >> %Script%
echo buf=inStream.ReadText >> %Script%
echo inStream.Close >> %Script%
echo set inStream=nothing >> %Script%
echo/ >> %Script%
echo set outStream=CreateObject("ADODB.Stream") >> %Script%
echo outStream.Type=2 >> %Script%
echo outStream.Mode=3 >> %Script%
echo outStream.Charset="UTF-8" >> %Script%
echo outStream.Open >> %Script%
echo outStream.WriteText buf >> %Script%
echo outStream.SaveToFile Wscript.Arguments(0), 2 >> %Script%
echo outStream.Flush >> %Script%
echo outStream.Close >> %Script%
echo set outStream=nothing >> %Script%
echo End If >> %Script%
%Script% %1
del %Script% 参考技术A 安装一个ultraedit, 编辑你的文本,然后在另存为时选择utf-8格式就可以了 参考技术B 借楼主的楼同问,求个unicode编码的TXT文件批量转成ANSI的文本文档,也就是普通的记事本TXT文件
怎么把UTF-8编码的文本批量改成ANSI啊!!!!!!!!!?
之前找了个软件从ANSI改成UTF-8了,现在想改回来,找不到这种软件
用软件Replace Pioneer可以批量转换编码,详细步骤:第一步:选文件
1.打开Tools->Batch Runner菜单
2.把多个待处理文件从windows拖拽到Batch Runner窗口中
第二步:变换编码
1.点击Change Encode按钮
2.点击input encoding,设置成utf-8
3.点击output encoding,设置成CN->gbk
4.点击start,完成
如果想反过来转,第2步选gbk,第3步选utf-8即可。
详见:How to convert multiple files from utf8 to GB2312?
参考资料:http://www.mind-pioneer.com/services/583_Character_encoding.html
参考技术A在linux系统下,使用iconv命令就可以轻松搞定。
如:utf8文件名为:utf8.txt,转换成:ansi.txt,可键入以下命令
iconv -f utf8 -t gbk -o ansi.txt utf8.txt说明:
Input/Output format specification:
-f, --from-code=NAME encoding of original text
-t, --to-code=NAME encoding for output
-o, --output=FILE output file
iconv -l可查看本机支持的字符集
不能从UTF-8改成ANSI
追答ANSI Converter 这个呢?
追问不行。
本回答被提问者采纳以上是关于求批处理,把拖入文本都变成UTF-8编码的主要内容,如果未能解决你的问题,请参考以下文章
java 将编码格式为utf-8的文件内容以 GBK编码存到txt文档