gpt4 book ai didi

PowerShellscript,错误的文件编码对话

转载 作者:行者123 更新时间:2023-12-04 18:23:26 24 4
gpt4 key购买 nike

我有一个用于文件字符编码对话的 PowerShell 脚本。

Get-ChildItem -Path D:/test/data -Recurse -Include *.txt |
ForEach-Object {
$inFileName = $_.DirectoryName + '\' + $_.name
$outFileName = $inFileName + "_utf_8.txt"
Write-Host "windows-1251 to utf-8: " $inFileName -> $outFileName
E:\bin\iconv\iconv.exe -f cp1251 -t utf-8 $inFileName > $outFileName
}

但它不是 utf-8,而是将文件字符编码转换为 utf-16。当我从命令行调用 iconv 实用程序时,它工作正常。

我怎么了?

最佳答案

当您将输出重定向到文件时,Powershell 使用 Unicode 作为默认编码。您可以不使用重定向运算符,而是通过管道连接到 Out-File-Encoding UTF8转变。

E:\bin\iconv\iconv.exe -f cp1251 -t utf-8 $inFileName | Out-File -FilePath $outFileName -Encoding UTF8

以下 TechNet 文章提供了更多信息(相当于 Powershell v2 中的 Get-Help Out-File -full)。
  • Out-File

  • 如果它对您的场景有帮助,值得注意的是,您也可以使用 Powershell 进行编码转换。
    Get-Content $inFileName -Encoding ASCII |
    Out-File -FilePath $outFileName -Encoding UTF8

    关于PowerShellscript,错误的文件编码对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585548/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com