使用PowerShell确定字符串的大小(以字节为单位)

时间:2017-01-03 16:19:41

标签: string powershell

我使用PowerShell将消息写入消息队列,消息队列上有消息大小限制。在将消息写入队列之前,我需要知道字符串的字节数。

如何计算字符串的字节数,以便在写入队列之前执行大小比较?

1 个答案:

答案 0 :(得分:7)

答案取决于您正在使用的文字编码。

您可以在几种不同的文本编码上使用静态方法GetByteCount()。假设您正在使用UTF-8文本编码,您可以在UTF8类上引用System.Text.Encoding静态属性,以获取对UTF8Encoding类的引用。

这是一个示例,我们检索System.Diagnostics.Process对象,将其转换为JSON表示,然后根据UTF8编码确定它使用了多少字节。

$Process = Get-Process -Name System | ConvertTo-Json
[System.Text.Encoding]::UTF8.GetByteCount($Process)

这是相同的示例,但将文本编码更改为ASCII。

[System.Text.Encoding]::ASCII.GetByteCount($Process)

如果您的输入字符串不包含任何Unicode字符,则对于ASCII和UTF-8字节计数应该得到相同的结果。

注意System.Text.Encoding基类声明了一个名为GetByteCount()的虚拟方法,但它取决于子类(例如UTF8Encoding )实际实现这个方法。

https://msdn.microsoft.com/en-us/library/w3739zdy(v=vs.110).aspx