使用PowerShell脚本写入文件时出现方块字符问题求助
解决PowerShell写入文件时的方块字符问题
原因排查与解决步骤
检查变量本身是否乱码
先确认$driveLetter和$drivePath变量内容正常,执行以下代码查看输出:Write-Host "driveLetter: $driveLetter" Write-Host "drivePath: $drivePath"如果变量输出就有方块,说明变量来源的编码存在问题,需先修正变量的获取逻辑。
使用无BOM的UTF8编码写入
PowerShell默认的UTF8编码带BOM,部分文本工具或程序读取这类文件时会显示方块。改用无BOM的UTF8编码写入:Set-Content -Path "$scriptPath\$scriptName" -Value $PSscript -Encoding UTF8NoBOM转换变量编码
若变量是从ANSI/GBK等编码的来源读取的,先将变量转成UTF8编码:$driveLetter = [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($driveLetter)) $drivePath = [System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::Default.GetBytes($drivePath))确认查看工具的编码设置
用文本编辑器打开文件时,确保选择UTF8编码(而非ANSI)。比如记事本中,可通过「文件」→「另存为」查看当前编码,若为ANSI,需切换编码重新打开文件。
内容的提问来源于stack exchange,提问作者Tan512
相关产品推荐
相关产品推荐

