找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 54791|回复: 14

[文件操作] 批处理如何将文件编码由UTF-8转为ANSI?

[复制链接]
发表于 2016-2-4 16:59:24 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-2-4 17:11 编辑

文件编码由UTF-8转为ANSI的BAT程序怎么写啊 !!求大神指导。。谢谢谢谢
发表于 2016-2-4 17:12:49 | 显示全部楼层
看到这里,注意保护原件。
因为你的文本是utf-8格式的,因此需要先进行转码,因为转码的bat只可以使用一次,因此,把这个bat单独出来转 ...
hlzj88 发表于 2016-1-31 02:19
 楼主| 发表于 2016-2-4 17:49:19 | 显示全部楼层
回复 2# hlzj88


    啊?啥意思
   我的意思是如何把一个目录下文字编码是UTF-8的文件
   转成文字编码是ANSI的文件
用BAT怎么实现
发表于 2016-2-4 18:46:29 | 显示全部楼层
  1. @mshta http://bathome.net/s/hta/ type('utf8.txt') >ansi.txt
复制代码
发表于 2016-2-5 07:35:05 | 显示全部楼层
回复 3# liusuxuexi
点击2楼回复里的那个彩色小箭头的图到达链接位置,话说那小图是有点不起眼。
 楼主| 发表于 2016-2-5 10:55:47 | 显示全部楼层
回复 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
    )
 楼主| 发表于 2016-2-5 10:56:30 | 显示全部楼层
回复 4# CrLf


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

    ”http://bathome.net/s/hta/“
 楼主| 发表于 2016-2-5 11:00:50 | 显示全部楼层
回复 4# CrLf


    文字编码确实变成ANSI了
  不过里面的汉子都变成乱码了
发表于 2016-2-5 12:07:03 | 显示全部楼层

标题

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

回复 1# liusuxuexi
http://www.bathome.net/thread-39199-1-1.html
使用该命令行,直接输出ansi字符到文本即可
发表于 2016-2-5 16:06:33 | 显示全部楼层
本帖最后由 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 在线脚本库
发表于 2016-2-5 16:09:01 | 显示全部楼层
发表于 2016-2-5 17:33:25 | 显示全部楼层
本帖最后由 pcl_test 于 2018-4-12 15:29 编辑

回复 6# liusuxuexi
http://www.bathome.net/redirect. ... 54521&ptid=8299
发表于 2016-2-5 20:08:30 | 显示全部楼层
回复 10# CrLf


    不靠谱
发表于 2016-2-6 12:59:49 | 显示全部楼层
  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. }
复制代码
发表于 2016-2-6 18:24:13 | 显示全部楼层
回复 14# terse

有的utf8文本不包含BOM
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:09 , Processed in 0.022059 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表