在 Windows 命令提示符下将文本文件转换为 UTF-8

在 Windows 命令提示符下将文本文件转换为 UTF-8

我需要通过 Windows 命令提示符将文本文件转换为 UTF-8 格式。这需要在另一台机器上完成,但我无权在该机器上安装软件。我需要类似以下内容的东西:

c:\notepad   source-file target-file --encoding option

是否有一个 Windows 命令提示符实用程序可以执行此操作?

答案1

我需要通过 Windows 命令提示符将文本文件转换为 utf-8 格式

您可以使用 PowerShell 轻松完成此操作:

Get-Content .\test.txt | Set-Content -Encoding utf8 test-utf8.txt

此方法将转换为UTF-8-BOM


进一步阅读

答案2

从 GNUWin32 包中使用iconv。它速度更快,特别是当您的文件约为或超过 1 Gb 时。

"C:\Program Files (x86)\GnuWin32\bin\iconv.exe" -f cp1251 -t utf-8 source.txt > result.txt

答案3

以下是将 *.text 文件转换为 *.sql 文件的步骤:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }

答案4

POWERSHELL:# 假设使用 Windows PowerShell,在 PowerShell Core 中使用 -Encoding utf8BOM。对于多个文件:

第一个解决方案:

$files = Get-ChildItem c:\Folder1\ -Filter *.txt 

foreach ($file in $files) {

    Get-Content $file.FullName | Set-Content "E:\Temp\Destination\$($file.Name)" -Encoding utf8BOM

}

或者,第二种解决方案(针对多个文件):

get-item C:\Folder1*.* | foreach-object {get-content -Encoding utf8BOM $_ | out-file ("C:\Folder1" + $_.Name) -encoding default}

或者,第三种解决方案:(仅适用于 2 个文件)

$a = "C:/Folder1/TEST_ro.txt"
 $b = "C:/Folder1/TEST_ro-2.txt"
 (Get-Content -path $a) | Set-Content -Encoding UTF8BOM -Path $b

相关内容