与.Net Framework 2.0一起使用时,看起来PowerShell中没有OEM编码。
PS1> Get-Content $FilePath -Encoding OEM
无法绑定参数'Encoding'。由于枚举值无效,无法将值“OEM”转换为“Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding”类型。指定以下枚举值之一,然后重试。可能的枚举值为“Unknown,String,Unicode,Byte,BigEndianUnicode,UTF8,UTF7,Ascii”。
但是我有这个编码的文件,我想用字符串读,怎么做?
答案 0 :(得分:4)
读入二进制数组并对其进行解码:
$enc = [System.Text.Encoding]::GetEncoding($Host.CurrentCulture.TextInfo.OEMCodePage)
$bytes = [System.IO.File]::ReadAllBytes($FilePath)
$text = $enc.GetString($bytes)