diy*_*iya 120
您可以使用ASCII之System.Text.Encoding类的编码通过使用类来获取每个字节的字符.
或试试这个
System.Text.ASCIIEncoding.Unicode.GetByteCount(string);
System.Text.ASCIIEncoding.ASCII.GetByteCount(string);
Run Code Online (Sandbox Code Playgroud)
Maj*_*jid 83
来自MSDN:
一个
String对象的有序集合System.Char,代表了字符串对象.
所以你可以使用这个:
var howManyBytes = yourString.Length * sizeof(Char);
Run Code Online (Sandbox Code Playgroud)
小智 23
System.Text.ASCIIEncoding.Unicode.GetByteCount(yourString);
Run Code Online (Sandbox Code Playgroud)
要么
System.Text.ASCIIEncoding.ASCII.GetByteCount(yourString);
Run Code Online (Sandbox Code Playgroud)
ens*_*tis 12
a 将占用多少字节string取决于您选择的编码(或者在您不知情的情况下在后台自动选择)。此示例代码显示了差异:
using System;
using System.Text;
static void Main()
{
Encoding testedEncodings = new[]
{
Encoding.ASCII, // Note that '' cannot be encoded in ASCII, data loss will occur
Encoding.UTF8, // This should always be your choice nowadays
Encoding.Unicode, // This is UTF-16. It is used by .NET to store your strings in RAM when the application is running, but this isn't useful information unless you're trying to manipulate bytes in RAM
Encoding.UTF32
};
string text = "a";
Console.WriteLine($"Tested string: {text}");
Console.WriteLine($"String length: {text.Length}");
Console.WriteLine();
PrintTableHeader("Encoding", "Bytes", "Decoded string");
foreach (var encoding in testedEncodings)
{
byte[] bytes = encoding.GetBytes(text);
string decodedString = encoding.GetString(bytes);
PrintTableRow(
encoding.EncodingName,
$"{bytes.Length} ({string.Join(' ', bytes)})",
decodedString);
}
}
static void PrintTableHeader(params string[] values)
{
PrintTableRow(values);
Console.WriteLine(new string('-', 60));
}
static void PrintTableRow(params string[] values)
{
Console.WriteLine("{0,-16} | {1,-24} | {2}", values);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Tested string: a
String length: 3
Encoding | Bytes | Decoded string
------------------------------------------------------------
US-ASCII | 3 (97 63 63) | a??
Unicode (UTF-8) | 5 (97 240 159 161 170) | a
Unicode | 6 (97 0 62 216 106 220) | a
Unicode (UTF-32) | 8 (97 0 0 0 106 248 1 0) | a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116739 次 |
| 最近记录: |