如果PowerShell不提供,那么如何以OEM编码读取文件?

时间:2013-01-29 13:11:04

标签: powershell encoding

与.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”。

但是我有这个编码的文件,我想用字符串读,怎么做?

1 个答案:

答案 0 :(得分:4)

读入二进制数组并对其进行解码:

$enc = [System.Text.Encoding]::GetEncoding($Host.CurrentCulture.TextInfo.OEMCodePage)
$bytes = [System.IO.File]::ReadAllBytes($FilePath)
$text = $enc.GetString($bytes)