The answer to this depends on the text encoding you're using.
You can use the static method GetByteCount() on a few different text encodings. Assuming you're using UTF-8 text encoding, you can reference the UTF8 static property on the System.Text.Encoding class, to obtain a reference to the UTF8Encoding class.
Here's an example, where we retrieve a System.Diagnostics.Process object, convert it to a JSON representation, and then determine how many bytes it uses, given a UTF8 encoding.
$Process = Get-Process -Name System | ConvertTo-Json
[System.Text.Encoding]::UTF8.GetByteCount($Process)
Here's the same example, but changing the text encoding to ASCII.
[System.Text.Encoding]::ASCII.GetByteCount($Process)
If your input string doesn't contain any Unicode characters, you should get the same result for both ASCII and UTF-8 byte counts.
NOTE: The System.Text.Encoding base class declares a virtual method named GetByteCount(), however it's up to the child classes (eg. UTF8Encoding) to actually implement this method.
https://msdn.microsoft.com/en-us/library/w3739zdy(v=vs.110).aspx