[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何实现ANSI编码转化为UTF-8无BOM编码?

本帖最后由 pcl_test 于 2016-11-15 17:01 编辑

我有一个记事本文件,现在的编码是ASCII的,运用什么命令,能够使其转化为UTF-8无BOM的编码?

如果实在不行的话,可以借助第三方的命令型工具。

请不要说Notpad手动转换为UTF-8无BOM的编码!

我需要的是命令行!

伟大的VBS又立功了!不要给其他软件任何机会!

TOP

VBS完全能够搞定啊,干吗还要麻烦别的软件?
把编码格式转换函数稍微改进一下即可。(这个函数如果你们没见过,那可能是我以前自己写的)
  1. Const adTypeBinary = 1
  2. Const adTypeText = 2
  3. Const adSaveCreateOverWrite = 2
  4. ConvCharSet "C:\boot.ini", "gbk", "utf-8"
  5. Function ConvCharSet(sFileName, srcCharSet, dstCharSet)
  6.     Dim ADOStrm
  7.     Dim text
  8.     Dim binData
  9.     Set ADOStrm = CreateObject("ADODB.Stream")
  10.     ADOStrm.CharSet = srcCharSet
  11.     ADOStrm.Type = adTypeText
  12.     ADOStrm.Open
  13.     ADOStrm.LoadFromFile sFileName
  14.     text = ADOStrm.ReadText(-1)
  15.     ADOStrm.Position = 0
  16.     ADOStrm.CharSet = dstCharSet
  17.     ADOStrm.WriteText text
  18.     ADOStrm.SetEOS
  19.   if 1 then
  20.     ADOStrm.Position = 0
  21.     ADOStrm.Type = adTypeBinary
  22.     ADOStrm.Position = 3
  23.     binData = ADOStrm.Read(-1)
  24.     ADOStrm.Position = 0
  25.     ADOStrm.Write binData
  26.     ADOStrm.SetEOS
  27.   end if
  28.     ADOStrm.SaveToFile sFileName & "_" & dstCharSet, adSaveCreateOverWrite
  29.     ADOStrm.Close
  30.     Set ADOStrm = Nothing
  31. ConvCharSet = text
  32. End Function
复制代码
1

评分人数

命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

以前有位朋友说他的用一个软件生成了一些无BOM的UTF8文件,不知道用的啥软件。
http://bbs.bathome.net/thread-8299-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 pcl_test 于 2018-4-12 15:00 编辑
  1. @echo off
  2. set "file=D:\test.txt"
  3. powershell ^
  4.     $txt = gc -LiteralPath '%file%';^
  5.     $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False;^
  6.     [System.IO.File]::WriteAllLines('%file%', $txt, $Utf8NoBomEncoding);
  7. pause
复制代码

TOP

可是不能转化为无BOM的UTF-8啊!而且还需要手动拖拽

TOP

什么是VBS?汗。。。
2楼的链接你看了吗?

TOP

用VBS如何实现??

TOP

回复 3楼 的帖子

为什么不能用VBS呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

大家来帮帮忙啊!看看谁会

TOP

有没有cmd的语句?我要使用cmd批处理完成。

TOP

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表