【发布时间】:2010-05-25 07:47:40
【问题描述】:
我需要在 PowerShell 下获取本机应用程序的输出。问题是,输出是用 UTF-8(无 BOM)编码的,PowerShell 无法识别,只是将那些时髦的 UTF 字符直接转换为 Unicode。
我发现 PowerShell 有 $OutputEncoding 变量,但它似乎不会影响输入数据。
好的 ol' iconv 也无济于事,因为这种不必要的 UTF8-as-if-ASCII => Unicode 转换发生在下一个管道成员获取数据之前。
【问题讨论】:
-
你能举个例子来说明你想要达到的目标吗?如果您使用的是文件或只想在屏幕上显示一些数据,答案可能会有所不同...
-
我怎样才能让它更清楚呢? “./program-that-outputs-utf8 > 1.txt”——不起作用,“./program-that-outputs-utf8 | out-file -enc utf8 1.txt”——也不起作用。确切的程序和确切的数据不会告诉你任何事情。
-
那条评论更清楚了。
-
我认为您的意思是“UTF8-as-if-current-codepage”。 ASCII 只定义最多 0x7F 的字符。 UTF-8 是一个严格的超集。 UTF-8 中的所有非 ASCII 字符都表示为所有 >=0x80 的字节序列。
标签: encoding powershell