Board logo

标题: [文本处理] [已解决]批处理命令下如何删除utf-8编码的txt文本的bom头? [打印本页]

作者: chromatin2    时间: 2015-4-4 21:41     标题: [已解决]批处理命令下如何删除utf-8编码的txt文本的bom头?

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

要修改txt文本,txt文本为utf-8编码,

因为utf-8带有bom头:即是 EFBBBF。

现在需要命令行的去除这个bom头的软件,因为要加入到bat里面。
作者: pcl_test    时间: 2015-4-4 22:02

本帖最后由 pcl_test 于 2017-3-23 19:58 编辑

回复 1# chromatin2
iconv下载http://www.bathome.net/s/tool/index.html?key=iconv
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.txt') do (
  3. iconv -c -f utf-8 -t gb2312 "%%a">"tmp_%%a"
  4. iconv -c -f gb2312 -t utf-8 "tmp_%%a">"new_%%a"
  5. del "tmp_%%a"
  6. )
  7. pause
复制代码

作者: chromatin2    时间: 2015-4-4 22:04

回复 2# pcl_test


    这个是转换成了gb吗?我需要只删除bom头,文件格式还必须是utf-8
作者: pcl_test    时间: 2015-4-4 22:12

回复 4# chromatin2
已修改
作者: chromatin2    时间: 2015-4-4 22:16

本帖最后由 chromatin2 于 2015-4-4 23:06 编辑

回复 2# pcl_test

已解决
作者: pcl_test    时间: 2015-4-4 22:25

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

回复 6# chromatin2
  1. @echo off
  2. powershell ^
  3.     dir . *.txt^|%%{^
  4.         $txt = [IO.File]::ReadAllText($_.FullName, [Text.Encoding]::UTF8);^
  5.         $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False;^
  6.         [System.IO.File]::WriteAllText($_.FullName, $txt, $Utf8NoBomEncoding);^
  7.     }
  8. pause
复制代码

作者: bailong360    时间: 2015-4-4 22:37

  1. <!-- :
  2. @echo off
  3. mshta "%~f0"
  4. sed -i "s/\xEF\xBB\xBF//g" *.txt
  5. pause&exit /b
  6. -->
  7. <script src=http://www.bathome.net/lib/diy/Tools.js></script>
  8. <script>
  9. Tools.get('sed')
  10. close()
  11. </script>
复制代码

作者: chromatin2    时间: 2015-4-4 22:37

回复 7# pcl_test


    已经解决,谢谢。




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