应该'未知'何时用作-Encoding参数?

时间:2009-12-12 04:53:12

标签: powershell

我以为Unknown选项用于二进制文件连接。

http://technet.microsoft.com/en-us/library/dd315299.aspx

  

未知编码类型未知   或无效。数据可以视为   二进制的。

但是{Get-Content binary.dat -Encoding Unknown}不返回字节数组而是字符串数组。

PS > $a = Get-Content $PSHOME\WTRInstaller.ico -Encoding Unknown
PS > $b = Get-Content $PSHOME\WTRInstaller.ico -Encoding Byte

PS > $a[0].GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

PS > $b[0].GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Byte                                     System.ValueType

即使我将$ a转换为字节数组,也与$ b不一致。

PS > [Text.Encoding]::Unicode.GetBytes($a)
PS > compare $c[0..10] $b[0..10]

                                                InputObject SideIndicator
                                                ----------- -------------
                                                         10 =>
                                                         32 <=

何时应该使用“未知”?

1 个答案:

答案 0 :(得分:2)

Uknown不是提供的东西,而是返回的东西。 System.Text.Encoding不仅供powershell使用。 BCL中有许多区域接受或返回相同的枚举。一些值用于返回,另一些值用于提供。

-Oisin