Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用PowerShell确定字符串的大小(以字节为单位)_String_Powershell - Fatal编程技术网

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

String 使用PowerShell确定字符串的大小(以字节为单位),string,powershell,String,Powershell,我正在使用PowerShell将消息写入消息队列,该队列有消息大小限制。在将消息写入队列之前,我需要知道字符串的字节数 如何计算字符串的字节数,以便在写入队列之前执行大小比较?答案取决于您使用的文本编码 您可以对一些不同的文本编码使用静态方法GetByteCount()。假设您使用的是UTF-8文本编码,您可以引用System.text.encoding类上的UTF8静态属性,以获取对UTF8Encoding类的引用 下面是一个示例,在这个示例中,我们检索一个System.Diagnostics

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


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

答案取决于您使用的文本编码

您可以对一些不同的文本编码使用静态方法
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。)