求批处理,把拖入文本都变成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可查看本机支持的字符集

参考技术B 装个ConvertZ 就能批量转编码了追问

不能从UTF-8改成ANSI

追答

ANSI Converter 这个呢?

追问

不行。

本回答被提问者采纳

以上是关于求批处理,把拖入文本都变成UTF-8编码的主要内容,如果未能解决你的问题,请参考以下文章

java 将编码格式为utf-8的文件内容以 GBK编码存到txt文档

Unicode编码和utf-8编码的区别

怎么把UTF-8编码的文本批量改成ANSI啊!!!!!!!!!?

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

ASCIIUnicode和UTF-8编码的区别

将 utf-8 编码的文本加载到 MySQL 表中