首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管道文本到外部程序附加一个尾随的新行

管道文本到外部程序附加一个尾随的新行
EN

Stack Overflow用户
提问于 2018-01-21 20:33:42
回答 1查看 586关注 0票数 9

我一直在比较多个系统之间的哈希值,并惊讶地发现PowerShells哈希值与其他终端的哈希值不同。

Linux终端(CygWin、等)而Windows提示符都显示了与PowerShell显示不同哈希值相同的散列。

使用SHA256进行了测试,但在使用其他算法(如md5 )时发现了同样的问题。

编码更新:

尝试更改PShell编码,但它对返回的哈希值没有任何影响。

代码语言:javascript
复制
[Console]::OutputEncoding.BodyName 
iso-8859-1
[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8
utf-8

GitHub PowerShell

https://github.com/PowerShell/PowerShell/issues/5974

EN

回答 1

Stack Overflow用户

发布于 2018-01-21 21:03:48

Linux终端和PowerShell使用不同的编码。因此,echo -n "string"产生的实际字节是不同的。我在Linux终端和Mint 10 PowerShell上试用了它。这是我得到的:

Linux铸币厂:

代码语言:javascript
复制
73 74 72 69 6E 67

Windows 10:

代码语言:javascript
复制
FF FE 73 00 74 00 72 00 69 00 6E 00 67 00 0D 00 0A 00

看起来Linux终端使用UTF-8,而Windows PowerShell使用UTF-16和BOM。同样,在PowerShell中,您不能使用'-n‘参数作为回波。因此,echo将换行符\r\n (0D 00 0A 00)放在"string“的末尾。

编辑:,如mklement0所言,mklement0 PowerShell在管道时默认使用ASCII。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48371447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档