我有很多大小不同的 ANSI 文本文件(从几 KB 到 1GB+),我需要将它们转换为 Unicode。
目前,这是通过将文件加载到记事本中然后执行“另存为...”并选择 Unicode 作为编码来完成的。显然这是非常耗时的!
我正在寻找一种一次性转换所有文件的方法(在 Windows 中)。这些文件位于一个目录结构中,因此它需要能够遍历整个文件夹结构并转换其中的所有文件。
我已经尝试了几个选项,但到目前为止还没有真正满足所有条件:
- ansi2unicode命令行实用程序。这是最接近我所追求的,因为它在文件夹结构中递归处理文件......但它在完成转换之前运行时一直崩溃。
- CpConverter图形用户界面实用程序。在某种程度上工作正常,但在文件夹结构中处理多个文件时遇到困难 - 似乎只能处理一个文件夹中的文件
- 有一个 DOS command在较小的文件上工作正常,但似乎无法处理大文件。
- 尝试过 GnuWin sed utility但每次我尝试安装它时它都会崩溃
所以我还在找!如果有人有任何建议,我将不胜感激
谢谢...
最佳答案
好的,如果其他人有兴趣,我找到了一种使用 PowerShell 执行此操作的方法:
Get-ChildItem "c:\some path\" -Filter *.csv -recurse |
Foreach-Object {
Write-Host (Get-Date).ToString() $_.FullName
Get-Content $_.FullName | Set-Content -Encoding unicode ($_.FullName + '_unicode.csv')
}
这会遍历整个文件夹结构并将所有 CSV 文件转换为 Unicode;转换后的文件将写入与原始文件相同的位置,但文件名会附加“unicode”。如果您想转换为不同的内容(例如 utf-8),您可以更改 -Encoding 参数的值。
它还会输出所有已转换文件的列表以及每个文件的时间戳
关于unicode - 需要将大量文本文件从 ANSI 批量转换为 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44157064/