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

[文本处理] 批处理如何将txt文件utf-16LE编码改成UTF-8编码?

[复制链接]
发表于 2024-3-6 14:44:18 | 显示全部楼层 |阅读模式
如何将txt文件utf-16LE编码改成UTF-8编码
发表于 2024-3-6 15:34:24 | 显示全部楼层
回复 1# Cypher


V1.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. powershell "Get-ChildItem *.txt | ForEach-Object {$NewName = $_.Basename + 'New' + $_.Extension; Get-Content $_ | Out-File -Encoding UTF8 $NewName}"
复制代码
发表于 2024-3-7 18:31:31 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-3-7 18:37 编辑

回复 1# Cypher

以下代码存为test.bat运行,结果生成utf-8无头标编码文件
考虑若完成批量转码,故代码采用ps读写方法中效率最高的[io.file]系列函数
第2行中目标文件(预设D:\txt\*.txt)其路径和文件类型可被修改,多个双引号包裹变量以便其中可含空格
第3行中预设输入编码 inEnc = unicode 其可覆盖 utf-16LE/utf-16BE编码(用于本帖楼主需求);
若 inEnc = default 其可覆盖简中编码(gbk/gb2312)完成简中编码文件转码为utf-8无头标编码文件

  1. @echo off &setlocal
  2. set "tFiles=D:\txt\*.txt"
  3. set "inEnc=unicode"
  4. powershell "$listF=& cmd /c dir/b/s/a-d """%tFiles%"""; foreach ($F in $listF) { $FF=$F+'.new'; $s=[io.file]::readalltext($F,[text.encoding]::%inEnc%);[io.file]::writeAlllines($FF,$s) }"
  5. endlocal&exit/b
复制代码
发表于 2024-4-11 15:04:12 | 显示全部楼层
回复 1# Cypher
论坛里有这个第三方工具很好用http://www.bathome.net/viewthrea ... amp;highlight=coder
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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