请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。相关的知识,希望对你有一定的参考价值。

之前您回答了一个ANSI转utf-8的,但是用不了。另外一个ANSI转unicode的是可以用的,但是怎么修改一下,可以转成utf-8呢?

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,跟要处理的文件放一起双击运行cls&echo off&cd /d "%~dp0"
rem 将ANSI编码的txt文本文件转化为UTF-8编码
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$self=get-item -literal $env:self;
$current=$self.Directory.FullName.trimend('\\');
$newfolder=$current+'\\result';
if(-not (test-path -literal $newfolder))[void][IO.Directory]::CreateDirectory($newfolder);
$files=@(dir -literal $current|?('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo]));
if($files.length -ge 1)
    write-host $files[0].FullName.Substring($current.length);
    $oldenc=[Text.Encoding]::GetEncoding('GB2312');
    $newenc=New-Object System.Text.UTF8Encoding $False;
    $newfile=$newfolder+'\\'+$files[0].Name;
    $text=[IO.File]::ReadAllText($files[0].FullName, $oldenc);
    [IO.File]::WriteAllText($newfile, $text, $newenc);

如何将许多ANSI格式的txt文档批量转换成UTF8格式?

假设你的文件是ansi(gbk),用Replace Pioneer批量转换为UTF8的方法如下:

第一步:选文件
1.打开Tools->Batch Runner菜单
2.点击Pick Files,用鼠标对需要处理的多个文件进行多选。

第二步:变换编码
1.点击Change Encode按钮
2.点击input encoding,设置成CN->gbk
3.点击output encoding,设置成utf-8
4.点击start,完成

注:如果你想把输出保存到新文件里,可以在点击Start之前修改set output filename,把它从$FILENAME改成新的规则,比如$FILENAME.new,还要注意备份,以防操作失误。 另外,你还可以把输出保存到新文件夹里。

如果你要的utf-8文件带BOM标识,需要选utf-8-BOM而不是utf-8
参考技术A 搜一下:如何将许多ANSI格式的txt文档批量转换成UTF8格式?

以上是关于请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。的主要内容,如果未能解决你的问题,请参考以下文章

如何把txt 批量从utf8转换为ascii,最好有工具

求助:怎样用cmd命令把指定的a.txt文件的编码格式从ANSI转换为UTF-8。谢谢!

txt文件,如何人批量把ansi编码变成utf-8编码

批量将ANSI文本txt文件转换成UTF8编码格式 (vbs方法)

请问在VB中如何用代码区别一个txt文件是ANSI编码还是Unicode编码?

C语言如何创建ANSI编码的txt文件