String 使用PowerShell确定字符串的大小(以字节为单位)
我正在使用PowerShell将消息写入消息队列,该队列有消息大小限制。在将消息写入队列之前,我需要知道字符串的字节数String 使用PowerShell确定字符串的大小(以字节为单位),string,powershell,String,Powershell,我正在使用PowerShell将消息写入消息队列,该队列有消息大小限制。在将消息写入队列之前,我需要知道字符串的字节数 如何计算字符串的字节数,以便在写入队列之前执行大小比较?答案取决于您使用的文本编码 您可以对一些不同的文本编码使用静态方法GetByteCount()。假设您使用的是UTF-8文本编码,您可以引用System.text.encoding类上的UTF8静态属性,以获取对UTF8Encoding类的引用 下面是一个示例,在这个示例中,我们检索一个System.Diagnostics
如何计算字符串的字节数,以便在写入队列之前执行大小比较?答案取决于您使用的文本编码 您可以对一些不同的文本编码使用静态方法
GetByteCount()
。假设您使用的是UTF-8文本编码,您可以引用System.text.encoding
类上的UTF8
静态属性,以获取对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
)
是的,那么,您在邮件中使用的编码是什么?发送者和接收者都必须知道并使用它。(“UTF-8字符”:UTF-8是Unicode字符集的编码,UTF-16也是字符串和数据类型的编码。因此,所有字符都是Unicode。)