我正在使用PowerShell将消息写入消息队列,消息队列上有消息大小限制.在将消息写入队列之前,我需要知道字符串的字节数.
我怎样才能知道字符串有多少字节,所以我可以在写入队列之前进行大小比较?
答案取决于您正在使用的文本编码.
您可以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)
Run Code Online (Sandbox Code Playgroud)
这是相同的示例,但将文本编码更改为ASCII.
[System.Text.Encoding]::ASCII.GetByteCount($Process)
Run Code Online (Sandbox Code Playgroud)
如果输入字符串不包含任何Unicode字符,则对于ASCII和UTF-8字节计数应该得到相同的结果.
注意:System.Text.Encoding基类声明一个名为的虚方法GetByteCount(),但是由子类(例如UTF8Encoding)实际实现此方法.
https://msdn.microsoft.com/en-us/library/w3739zdy(v=vs.110).aspx
| 归档时间: |
|
| 查看次数: |
2692 次 |
| 最近记录: |