Board logo

标题: [文件操作] 批处理如何将文件编码由UTF-8转为ANSI? [打印本页]

作者: liusuxuexi    时间: 2016-2-4 16:59     标题: 批处理如何将文件编码由UTF-8转为ANSI?

本帖最后由 pcl_test 于 2016-2-4 17:11 编辑

文件编码由UTF-8转为ANSI的BAT程序怎么写啊 !!求大神指导。。谢谢谢谢
作者: hlzj88    时间: 2016-2-4 17:12

看到这里,注意保护原件。
因为你的文本是utf-8格式的,因此需要先进行转码,因为转码的bat只可以使用一次,因此,把这个bat单独出来转 ...
hlzj88 发表于 2016-1-31 02:19

作者: liusuxuexi    时间: 2016-2-4 17:49

回复 2# hlzj88


    啊?啥意思
   我的意思是如何把一个目录下文字编码是UTF-8的文件
   转成文字编码是ANSI的文件
用BAT怎么实现
作者: CrLf    时间: 2016-2-4 18:46

  1. @mshta http://bathome.net/s/hta/ type('utf8.txt') >ansi.txt
复制代码

作者: hlzj88    时间: 2016-2-5 07:35

回复 3# liusuxuexi
点击2楼回复里的那个彩色小箭头的图到达链接位置,话说那小图是有点不起眼。
作者: liusuxuexi    时间: 2016-2-5 10:55

回复 2# hlzj88

你说的时下面这段代码吗?编码是转了 不过文件里面的内容没了

    @echo off
echo 这是编码转换bat,对于utf8格式文本转换为ansi格式,但只敢使用一次,不可重复使用
pause
for %%a in (*.txt) do (
    title 编码转换 文件是 %%a
    iconv -c -f utf-8 -t gb2312 "%%a" >"gb%%a"
    move /y "gb%%a" "%%a">nul
    )
作者: liusuxuexi    时间: 2016-2-5 10:56

回复 4# CrLf


下面的这个代码是JAR包吗?

    ”http://bathome.net/s/hta/“
作者: liusuxuexi    时间: 2016-2-5 11:00

回复 4# CrLf


    文字编码确实变成ANSI了
  不过里面的汉子都变成乱码了
作者: wskwfkbdn    时间: 2016-2-5 12:07     标题: 标题

本帖最后由 wskwfkbdn 于 2016-2-6 18:26 编辑

回复 1# liusuxuexi
http://www.bathome.net/thread-39199-1-1.html
使用该命令行,直接输出ansi字符到文本即可
作者: CrLf    时间: 2016-2-5 16:06

本帖最后由 CrLf 于 2016-2-5 16:07 编辑

回复 7# liusuxuexi


哦,上次解决兼容性问题时把 type 忘了...
已将修补后的页面提交给站长,换了一种兼容方式,更新后将可用 type

暂时可用下面这个:
  1. @mshta http://bathome.net/s/hta/  iconv('utf8.txt','ansi.txt','utf-8','gbk')
复制代码
这不是 jar,这是 hta,详见:批处理之家在线 HTA 脚本批处理之家 js 在线脚本库
作者: CrLf    时间: 2016-2-5 16:09

也可用相关第三方:
http://www.bathome.net/s/tool/?k ... 4%BB%B6%20%E8%BD%AC
作者: hlzj88    时间: 2016-2-5 17:33

本帖最后由 pcl_test 于 2018-4-12 15:29 编辑

回复 6# liusuxuexi
http://www.bathome.net/redirect. ... 54521&ptid=8299
作者: wskwfkbdn    时间: 2016-2-5 20:08

回复 10# CrLf


    不靠谱
作者: terse    时间: 2016-2-6 12:59

  1. @if (0)==(0) echo off
  2. dir /b a.txt | cscript.exe -nologo -e:jscript %0
  3. pause & exit
  4. @end
  5. while (!WSH.StdIn.AtEndOfStream) {
  6.     var file = WSH.StdIn.ReadLine();
  7.     adoLoadText(file, "UTF-8", "GBK");
  8. }
  9. function adoLoadText(file, enc1, enc2) {
  10.     var stream, text;
  11.     stream = new ActiveXObject("ADODB.Stream");
  12.     stream.type = 2;
  13.     stream.charset = "437";
  14.     stream.open();
  15.     stream.loadFromFile(file);
  16.     var bom = escape(stream.ReadText(2));
  17.     if (bom == "%u2229%u2557") {
  18.         stream.Position = 0;
  19.         stream.charset = enc1;
  20.         text = stream.readText(-1);
  21.         stream.Position = 0;
  22.         stream.charset = enc2;
  23.         stream.WriteText(text);
  24.         stream.SetEOS();
  25.         stream.SaveToFile(file, 2);
  26.     }
  27.     stream.close();
  28. }
复制代码

作者: wskwfkbdn    时间: 2016-2-6 18:24

回复 14# terse

有的utf8文本不包含BOM




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2